首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传图片的代码

问上传图片的代码
EN

Stack Overflow用户
提问于 2015-12-14 11:37:19
回答 2查看 1.5K关注 0票数 2

我正在尝试使用codenameone从应用程序上传图像到远程主机。

代码语言:javascript
复制
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。请协助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-14 12:04:15

您需要在第6行中设置文件名并将"img“更改为" file”:

代码语言:javascript
复制
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端,调用文件名:

代码语言:javascript
复制
$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);
}

在附带注意事项上,始终运行捕获内部的尝试和捕捉。如果用户取消图像捕获或发生其他事情,则会引发异常。

票数 4
EN

Stack Overflow用户

发布于 2016-07-28 07:22:09

存储图像的我的解决方案

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34266078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档