Hi,
multipart is a multipart file upload. Which isn't "form-data" it's 
"x-www-form-urlencode" which is a very different thing.
If you don't need that you shouldn't use multipart and should use a regular 
connection request. Just submit the file as a byte[]. 

If an argument is passed as get just pass it manually in the URL by adding 
it to the string using the ? and & characters.

On Wednesday, June 30, 2021 at 9:59:33 PM UTC+3 [email protected] wrote:

> Hi,
>
> Uff, at some point delete the line "addToQueue (mp);". Also note that 
> although in Postman I use the "POST" method it is necessary for the 
> parameters to be detected in PHP with $ _GET ['variable'], however when it 
> is executed from a client it is necessary to use $ _POST ['variable'].
>
> Thanks for the support and sorry for the inconvenience.
>
> El Wednesday, June 30, 2021 a la(s) 11:26:32 AM UTC-5, [email protected] 
> escribió:
>
>> 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/d25c266e-9a5c-4d2b-970f-63db00709b90n%40googlegroups.com.

Reply via email to