我尝试将图像上传到服务器,它会抛出Error 405:Method not found,但是从同一个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);
}
}
答案 0 :(得分:0)
您无法上传到任意URL,您需要拥有一个在POST
http方法上处理multipart的servlet。
我们在这里有一个包含服务器端代码的演示:http://codenameone.com/blog/build-mobile-ios-apps-in-java-using-codename-one-on-youtube.html
请注意,您还在代码中执行了一些其他“有问题”的事情,例如使用PRIORITY_CRITICAL
并使用InputStream API,而不仅仅是提供文件URL(效率更高)。