Enviar una imagen usando JSON en node.js (экспресс) ООН dispositivo андроид

Estoy tratando de enviar una imagen al cliente usando un servidor en node.js. Cuando escribo la URL en un browser я toma la imagen. Эмбарго греха, cuando la quiero obtener en el celular, нет я aparece.

Este es el codigo para enviar la url de la imagen:

app.use(express.static('images'));
app.post('/Imagen',function(req, res){
    var dir= "http://10.0.0.23:8080/basket.png";
    var obj={"img":dir};
    res.json(obj);
});

Este codigo, al recibir Строка ООН подставляют el JSON (que funciona) se lo manda una clase llamada LeerConsulta la cual lee el objeto JSON y obtiene la imagen:

public class Accedido extends AppCompatActivity {

    ImageView imagen;
    Button ok;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_accedido);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        imagen=(ImageView)findViewById(R.id.Img);
        ok=(Button)findViewById(R.id.btnOk);
        ok.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Bitmap img=null;
                Ajax im=new Ajax();
                try {
                    String imagen = im.execute(MainActivity.IP_ADDRESS + "Imagen").get();
                    Toast.makeText(Accedido.this, imagen, Toast.LENGTH_LONG).show();
                    LeerConsulta lec = new LeerConsulta(imagen, "img");
                }
                catch(Exception exc) {
                    Toast.makeText(Accedido.this, exc.toString(), Toast.LENGTH_SHORT).show();
                }
                imagen.setImageBitmap(img);
            }
        });
    }

Por último, este es el codigo que lee el objeto JSON y recibe la imagen:

public class LeerConsulta{

    static String content="", data="";

    public LeerConsulta(String Content, String Dat)
    {
        content=Content;
        data=Dat;
    }
    protected Bitmap getBitMap()
    {
        try{
            JSONObject jsonResponse = new JSONObject(content);
            String src=jsonResponse.getString(data);
            java.net.URL url = new java.net.URL(src);
            HttpURLConnection con=(HttpURLConnection)url.openConnection();
            con.setDoInput(true);
            con.connect();
            InputStream input=con.getInputStream();
            Bitmap myBitmap=BitmapFactory.decodeStream(input);
            return myBitmap;
        }
        catch(Exception e){
            String err="EL error es este: ";
            Log.e(err,e.getMessage());
            //e.printStackTrace();
            return null;
        }
    }

}
0
задан 09.01.2017, 23:32
0 ответов

Node.js не индеец-апачи, где у тебя могут быть публичные каталоги видеть контент папок. Когда ты делаешь статический каталог в Express, что ты делаешь, состоит в том, чтобы помещать в наличие файлы внутри.

Express ищет файлы, касающиеся статического каталога, а следовательно имя статического каталога не составляет часть унифицированного указателя ресурса.

Когда он вводит просьбу, сначала оцениваются маршруты, которые ассоциировались с сервером; в случае не существуйте, перейди, чтобы искать в статических файлах.

В случае захоти поддержать начальный маршрут, ты, должно быть, создаешь папку и способствовать тому, чтобы подалась эта, в конце концов помещать папку images внутри:

assets
|__images
   |__basket.png
   |__football.png
   |__tenis.png

И ты подаешь эта папку:

app.use(express.static(path.join(__dirname, 'assets')));

Сейчас, если ты соглашаешься в http://10.0.0.23:8080/images/basket.png ты увидишь, что подают тебе изображение правильно.

1
ответ дан 03.12.2019, 17:47
  • 1
    Большое спасибо, сейчас я буду иметь это в виду. Равный проблема сейчас - другой (frontend), так как мне удалось получить унифицированный указатель ресурса, который показывал бы мне изображение (я протестировал ее с мобильного телефона, и функционирует), но когда я хочу, чтобы app загрузил ее, не распознает ее мне. Сейчас я издаю вопрос и помещаю код android (если они могут давать мне руку с этим). Сейчас я изменяю вопрос, как для того, чтобы у меня появилась настоящая проблема –  09.01.2017, 23:26
  • 2
    Там издайте вопрос. Если они могут помогать мне, он ему был бы благодарен за них много –  09.01.2017, 23:32