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.