首先说一下几个地方:

1.上传使用ss.upload("domin域名","源地址","目标地址,也就是storage的地址");假设要上传到storage某一个详细的文件夹下目标地址写为"upload/"+filename;文件就上传到了upload文件夹下。

2.storage以下全部文件的路径是http://myapp-mybucket.stor.sinaapp.com/path/file.txt 

前面是myapp是应用的名字,这个路径能够通过

 String realPath = ss.getUrl("域名", “上面的目标路径”); 就能够得到这个全网路径

3.使用commons-fileupload上传组件时,先把文件写到一个暂时路径里,然后再写回storage就好了。

以下是java代码:

private void userSave(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

FileItemFactory factory=new DiskFileItemFactory();

ServletFileUpload upload=new ServletFileUpload(factory);

List items=null;

try {

items=upload.parseRequest(request);

} catch (FileUploadException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Iterator itr=items.iterator();

HttpSession session=request.getSession();

User user=(User)session.getAttribute("currentUser");

//上传到Storage之后的真是路径

String realPath=user.getImageName();

String imageName=user.getImageName();

boolean imageChange=false;

while(itr.hasNext()){

FileItem item=(FileItem)itr.next();

if(!item.isFormField()){

try{

imageName=DateUtil.getCurrentDateStr();

//带后缀的文件名称

imageName=imageName+"."+item.getName().split("\\.")[1];

user.setImageName(imageName);

//String filePath=PropertiesUtil.getValue("imagePath")+imageName+"."+item.getName().split("\\.")[1];

String folder=PropertiesUtil.getValue("imagePath");

String filePath=session.getServletContext().getRealPath(folder)+"/"+imageName;

 //前面的部分仅仅须要按正常的上传来写就能够了 filePath仅仅是一个暂时文件   item.write(new File(filePath));

// 上传完成后 使用SaeStorage往storage里面写

SaeStorage ss = new SaeStorage();

// 使用upload方法上传到域domain下,此处本人的是onway

ss.upload("onway", filePath, "upload/"+imageName);

// 获取上传后的图片路径

realPath = ss.getUrl("onway", "upload/"+imageName);

// System.out.println(realPath);

}catch(Exception e){

e.printStackTrace();

}

}

}

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。