在代号一中使用分段请求上传文件时出现问题
Issue while Upload file using Multipart Request in Codename One
我试图将图像上传到服务器,它向我抛出错误 405:找不到方法,但是从同一个 Url 我可以下载任何文件.. 以下是我尝试的代码.
private void uploadFileToServer(ActionEvent event) throws IOException
{
try{
InfiniteProgress ip = new InfiniteProgress();
Dialog dlg = ip.showInifiniteBlocking();
dlg.show();
MultipartRequest request = new MultipartRequest();
FileSystemStorage fs = FileSystemStorage.getInstance();
String fileUri = fs.getAppHomePath() + "654319032015150536IR.png";
request.setUrl("http://192.XX.XX.58:XX/HttpFolder/");
request.setPost(true);
InputStream is = FileSystemStorage.getInstance().openInputStream(fileUri);
request.addData("file", is, FileSystemStorage.getInstance().getLength(fileUri), "image/png");
request.setFilename("file", fileUri);
request.setPriority(ConnectionRequest.PRIORITY_CRITICAL);
NetworkManager.getInstance().addToQueue(request);
dlg.dispose();
if (event instanceof NetworkEvent) {
NetworkEvent ne = (NetworkEvent)event;
Dialog.show("Result:", ne.getMetaData().toString(), "","");
}
}
catch(Exception e){
Dialog.show("ERROR", e.getMessage(), "OK",null);
}
}
您不能上传到任意 URL,您需要有一个在 POST
http 方法上处理多部分的 servlet。
我们有一个包含服务器端代码的演示:http://codenameone.com/blog/build-mobile-ios-apps-in-java-using-codename-one-on-youtube.html
请注意,您还在代码中做了一些其他 "problematic" 事情,例如使用 PRIORITY_CRITICAL
和使用 InputStream API 而不是只给文件 URL (哪个效率更高)。
我试图将图像上传到服务器,它向我抛出错误 405:找不到方法,但是从同一个 Url 我可以下载任何文件.. 以下是我尝试的代码.
private void uploadFileToServer(ActionEvent event) throws IOException
{
try{
InfiniteProgress ip = new InfiniteProgress();
Dialog dlg = ip.showInifiniteBlocking();
dlg.show();
MultipartRequest request = new MultipartRequest();
FileSystemStorage fs = FileSystemStorage.getInstance();
String fileUri = fs.getAppHomePath() + "654319032015150536IR.png";
request.setUrl("http://192.XX.XX.58:XX/HttpFolder/");
request.setPost(true);
InputStream is = FileSystemStorage.getInstance().openInputStream(fileUri);
request.addData("file", is, FileSystemStorage.getInstance().getLength(fileUri), "image/png");
request.setFilename("file", fileUri);
request.setPriority(ConnectionRequest.PRIORITY_CRITICAL);
NetworkManager.getInstance().addToQueue(request);
dlg.dispose();
if (event instanceof NetworkEvent) {
NetworkEvent ne = (NetworkEvent)event;
Dialog.show("Result:", ne.getMetaData().toString(), "","");
}
}
catch(Exception e){
Dialog.show("ERROR", e.getMessage(), "OK",null);
}
}
您不能上传到任意 URL,您需要有一个在 POST
http 方法上处理多部分的 servlet。
我们有一个包含服务器端代码的演示:http://codenameone.com/blog/build-mobile-ios-apps-in-java-using-codename-one-on-youtube.html
请注意,您还在代码中做了一些其他 "problematic" 事情,例如使用 PRIORITY_CRITICAL
和使用 InputStream API 而不是只给文件 URL (哪个效率更高)。