ASIFormDataRequest是ASIHttpRequest类库的重要组成部分,最近做的毕设要实现iPhone拍照,然后将拍摄图片传到服务器端。下面是在iOS客户端使用ASIFormDataRequest以post方式进行图片上传:
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"test"ofType:@"jpg"];
NSString *url = @"http://....../upload.aspx";
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL: [NSURL URLWithString: url]];
[request setPostValue: @"MyName" forKey: @"name"];
[request setFile: fileName forKey: @"this_is_file"];
[request buildRequestHeaders];
NSLog(@"header: %@", request.requestHeaders);
[request startSynchronous];
NSLog(@"responseString = %@", request.responseString);
原帖地址:http://blog.csdn.net/kbawyg/article/details/7550964
servlet服务器接收图片数据搭建方法(在原帖基础上略做修改):
需要导入两个包:commons-fileupload-1.2.1.jar,commons-io-1.4.jar
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@WebServlet("/ab")
public class ab extends HttpServlet {
private static final long serialVersionUID = 1L;
private static String path = "";
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
path = this.getServletContext().getRealPath("/upload");
System.out.println(path);
try {
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload up = new ServletFileUpload(factory);
List<FileItem> ls = up.parseRequest(request);
for (FileItem fileItem : ls) {
if (fileItem.isFormField()) {
String FieldName = fileItem.getFieldName();
// getName()返回的是文件名字 普通域没有文件 返回NULL
// String Name = fileItem.getName();
String Content = fileItem.getString("gbk");
request.setAttribute(FieldName, Content);
} else {
String nm = fileItem.getName().substring(
fileItem.getName().lastIndexOf("\\") + 1);
File mkr = new File(path, nm);
if (mkr.createNewFile()) {
fileItem.write(mkr);// 非常方便的方法
}
request.setAttribute("result", "上传文件成功!");
}
}
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("result", "上传失败,请查找原因,重新再试!");
}
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.doGet(request, response);
}
}
原帖地址:http://zhidao.baidu.com/question/154494378.html