Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Subir una imagen al servidor
Started by visstaralax Apr 20 2018 03:30 AM

1 reply to this topic
[TOPIC CONTROLS]
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

visstaralax

[GLOBAL: userInfoPane.html]
visstaralax
  • Enthusiast

  • 39 posts
  • Corona SDK

¡Muy buenas! Después de pasar dos días mirando exhaustivamente como subir una imagen al servidor y casi lograrlo, me pongo a preguntar en el foro a ver si alguien me puede ayudar con el último paso:

 

Aquí os dejo una página con un ejemplo: https://coronalabs.com/blog/2014/02/25/tutorial-uploading-files-demystified/

 

Como no me funciona mi código, he mirado el protocolo http en postman, y lo que pone es:

 

POST /productos/foto HTTP/1.1
Host: localhost:8089
api_token: sdN9GhDmR6wB5yKCzzSK2LyFY7xuz8uHfgrXNyqOVV97OmTqNp6999RLD00c
enctype: multipart/form-data
Cache-Control: no-cache
Postman-Token: dcafea33-9283-678c-9790-ff389591e222
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW


------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="foto"; filename="img.jpg"
Content-Type: image/jpeg




------WebKitFormBoundary7MA4YWxkTrZu0gW--

Si envío esta petición desde postman a mi API REST, si que me sube la imagen. De momento, me la sube en el localhost, así que el procedimiento funciona.

 

La función que tengo es esta:

local url = dir.."/productos/foto"
local params = {
    timeout = 60,
    progress = true,
    bodyType = "binary"
   
}
local filename = "img.jpg"
local baseDirectory = system.ResourceDirectory
local contentType = "image/jpeg"
local headers = {}
headers.filename = filename
headers["enctype"] = "multipart/form-data"
headers["Content-Type"] = "multipart/form-data"

params.headers = headers


network.upload( url , "POST", uploadListener, params, filename, baseDirectory, contentType )

Al ejecutar esta función, me sale un error de la API REST. Si por ejemplo, en el código de la API REST pongo un "return" del archivo subido, me salta un nil.

 

function foto_upgrade (Request $request){
        
        $foto = $request->file('foto'); 
        $id = Ventas::orderBy('id', 'desc')->select('id')->first(); return $foto;
        $foto->move('C:\xampp\tmp', $id['id'].'.jpeg');
        
        return "ok";
    }

Respuesta:

Upload started
13:24:38.192  Uploading... bytes transfered  nil
13:24:38.287  Upload ended...
13:24:38.287  Status: 200
13:24:38.287  Response: 

Creo que lo que falla es algun dato en el protocolo de comunicaciones. He hecho un montón de pruebas pero no consigo ningun resultado. He probado incluso de hacerlo con un network.request () poniendo cada parámetro en el body y en el headers. ¡Qué desesperación!

 

Gracias de antemano!!!!!!

 



[TOPIC: post.html]
#2

visstaralax

[GLOBAL: userInfoPane.html]
visstaralax
  • Enthusiast

  • 39 posts
  • Corona SDK

¿Alguien ha subido alguna vez alguna imagen y ha tenido que escribir los parámetros de envío y le ha funcionado? 




[topic_controls]
[/topic_controls]