Я пытаюсь загрузить изображение из приложения на удаленный хост, используя кодовое имя
MultipartRequest cr = new MultipartRequest();
String filePath = Capture.capturePhoto(Display.getInstance().getDisplayWidth(), -1);
cr.setUrl(url);
cr.setPost(true);
String mime="image/jpeg";
cr.addData("img", filePath, mime);
InfiniteProgress prog = new InfiniteProgress();
Dialog dlg = prog.showInifiniteBlocking();
cr.setDisposeOnCompletion(dlg);
NetworkManager.getInstance().addToQueueAndWait(cr);
На PHP
страница, которую я получаю null
на имя изображения. Пожалуйста помогите
Вам нужно установить имя файла и заменить «img» на «file» в строке 6:
MultipartRequest cr = new MultipartRequest();
String filePath = Capture.capturePhoto(Display.getInstance().getDisplayWidth(), -1);
cr.setUrl(url);
cr.setPost(true);
String mime="image/jpeg";
cr.addData("file", filePath, mime);
cr.setFilename("file", "MyImage.jpg");//any unique name you want
InfiniteProgress prog = new InfiniteProgress();
Dialog dlg = prog.showInifiniteBlocking();
cr.setDisposeOnCompletion(dlg);
NetworkManager.getInstance().addToQueueAndWait(cr);
Затем на стороне php назовите имя файла:
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 5000000) && in_array($extension, $allowedExts)) {
if ($_FILES["file"]["error"] > 0) {
$named_array = array("Response" => array(array("Status" => "error")));
echo json_encode($named_array);
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], "FolderPath/" . $_FILES["file"]["name"]);
$Path = $_FILES["file"]["name"];
$named_array = array("Response" => array(array("Status" => "ok")));
echo json_encode($named_array);
}
} else {
$named_array = array("Response" => array(array("Status" => "invalid")));
echo json_encode($named_array);
}
На заметку, всегда запускайте Capture внутри попробовать и поймать. Исключение будет выдано, если пользователь отменит захват изображения или что-то еще произошло.
Мое решение для изображений из хранилища
String fileName = "";
MultipartRequest multipartRequest = new MultipartRequest();
InfiniteProgress progressIndicator = new InfiniteProgress();
Dialog dialog = progressIndicator.showInifiniteBlocking();
InputStream is = Storage.getInstance().createInputStream(fileName);
multipartRequest.setUrl(SERVICEURL + "upload");
multipartRequest.setPost(true);
multipartRequest.setFailSilently(true);
multipartRequest.setTimeout(30000);
multipartRequest.addData("file", is, Storage.getInstance().entrySize(fileName), "image/jpg");
multipartRequest.setFilename("file", fileName);
NetworkManager.getInstance().addToQueueAndWait(multipartRequest);
multipartRequest.setDisposeOnCompletion(dialog);