Hi,

Thank you mr Shai and mr Javier for your reply
I thought it worked, but I was wrong.
*I'm going to name everything I've done. As I mentioned in postman it works 
fine and this is the configuration:*
[image: Postman.png]
*The code in PHP is small and although it is not the topic of this forum I 
am going to include it (suddenly someone detects a problem):*
//Coloca los encabezados 
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: PUT, GET, POST, DELETE');  
header('Content-Type: application/json; text/html; charset=UTF-8; 
multipart/form-data');
header('Access-Control-Max-Age: 3600');
header('Access-Control-Allow-Headers: Content-Type, 
Access-Control-Allow-Headers, Authorization, X-Requested-With');
// Generar archivo .htaccess si es necesario.
ws_htaccess();

$bd = isset($_GET['bd']) ? $_GET['bd'] : null;
if (isset($_FILES['imagen']['name'])) {
$fileName  =  $_FILES['imagen']['name'];
$tempPath  =  $_FILES['imagen']['tmp_name'];
// Extensiones validas
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); 
$ext = strtolower(pathinfo($fileName, PATHINFO_EXTENSION)); // toma la 
extension de la imagen
if (in_array($ext, $valid_extensions)) { // Valida que la extensión sea 
valida
$ruta = "../../../file/img/".$bd."/imagen";
if (!file_exists($ruta)) {
mkdir($ruta, 0777, true);
}
move_uploaded_file($tempPath, $ruta."/".$fileName);
}
} else {
return getResponse('error', null, 500, 'Fallo en la creación / 
actualización de la foto');
}


*And finally the code in the mobile app:*
public static void actualizaImagenFoto(String imagen, String rutaImagen) {
        try {
            MultipartRequest mp = new MultipartRequest();
            mp.setUrl(SERVER_URL + "ws_foto_imagen/ws_foto_imagen.php");
            mp.addArgument("bd", Preferences.get("bd", "tempus"));
            mp.addData("imagen", rutaImagen, "image/jpeg");
            mp.setFilename("imagen", imagen);
            mp.setPost(true);
            System.out.println(Integer.toString(mp.getResponseCode()) + "  
 " + mp.getResponseErrorMessage());
        } catch (IOException err) {
            Log.e(err);
            ToastBar.showErrorMessage("Error en actualización de la foto: " 
+ err.getMessage());
        }
    }

With or without the setPost and setFileName methods it's not working for me.

I appreciate your comments because I do not know what to continue doing.

El Wednesday, June 30, 2021 a la(s) 12:04:09 AM UTC-5, [email protected] 
escribió:

> Can't be sure without looking at your entire implementation but here are 2 
> ideas:
>
> 1- make sure to add the file via MultipartRequest.addData( and don't call 
> setPost or setFileName
> 2- make sure your test call in Postman is using Multipart 
> https://stackoverflow.com/questions/16015548/how-to-send-multipart-form-data-request-using-postman
>
>
> On Wed, 30 Jun 2021 at 03:22, [email protected] <[email protected]> wrote:
>
>> Hi,
>>
>> I asked him about the arguments because I did not get the ws to recognize 
>> them
>>
>> El Tuesday, June 29, 2021 a la(s) 8:33:36 PM UTC-5, Shai Almog escribió:
>>
>>> Hi,
>>> using the regular addArgument should work just fine. It will be added 
>>> to the multipart seamlessly.
>>>
>>> On Wednesday, June 30, 2021 at 3:15:35 AM UTC+3 [email protected] wrote:
>>>
>>>> Hi,
>>>>
>>>> Detect the problem by including the following parameters:
>>>>              mp.setFilename ("image", "data.jpeg");
>>>>              mp.setPost (true);
>>>>
>>>> However, I would like to know how I can send 2 additional arguments 
>>>> (Database and Company Number).
>>>>
>>>> Thanks
>>>>
>>>>
>>>> El Tuesday, June 29, 2021 a la(s) 6:37:59 PM UTC-5, [email protected] 
>>>> escribió:
>>>>
>>>>> Hi,
>>>>>
>>>>> I am working on a WS made in PHP. I was able to create some routines 
>>>>> to receive an image and save them in a folder on the server. All this I 
>>>>> have been testing in Postman and it works 100%.
>>>>> In the WS I do not validate the HTTP method, but I assume it is POST.
>>>>>
>>>>> From my mobile app I send the file with the MultipartRequest class. I 
>>>>> was able to validate by debugging the response code 200, however I can't 
>>>>> get the file to be created in the folder.
>>>>>
>>>>> I have 3 days struggling with this and I don't see the problem. I copy 
>>>>> the code to see if you can see the error.
>>>>>
>>>>> I take this opportunity to ask if it is valid to send additional 
>>>>> arguments, since I need to send the name of the database and the company 
>>>>> code to create the folder where the image will be saved.
>>>>>
>>>>> My code:
>>>>>     public static void actualizaImagenFoto(String rutaImagen, Long 
>>>>> visitaId) {
>>>>>         try {
>>>>>             MultipartRequest mp = new MultipartRequest();
>>>>>             mp.setUrl(SERVER_URL + 
>>>>> "ws_foto_imagen/ws_foto_imagen.php");
>>>>>  //           mp.addArgument("token", UsuarioService.getToken());
>>>>>  //           mp.addArgument("fot_visita_id", visitaId.toString());
>>>>>             mp.addData("imagen", rutaImagen, "image/jpeg");
>>>>>             addToQueue(mp);
>>>>>             System.out.println(Integer.toString(mp.getResponseCode()) 
>>>>> + "   " + mp.getResponseErrorMessage());
>>>>>         } catch (IOException err) {
>>>>>             Log.e(err);
>>>>>             ToastBar.showErrorMessage("Error en actualización de la 
>>>>> foto: " + err.getMessage());
>>>>>         }
>>>>>     }
>>>>>
>>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "CodenameOne Discussions" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/codenameone-discussions/2320c9e6-4b91-412c-b04f-55ba6587c88cn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/codenameone-discussions/2320c9e6-4b91-412c-b04f-55ba6587c88cn%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/144f19ac-f993-4f25-83b7-4af4247d72f0n%40googlegroups.com.

Reply via email to