如何用java程序实现上传文件到指定的URL地址
有一个网站www.tineye.com 他有一个上传图片的表单
表单内容如下
<form id="upload_form" method="post" action="http://www.tineye.com/search" enctype="multipart/form-data">
Upload image
<input id="upload_box" type="file" name="image" onchange="display_throbber(); this.form.submit()title="Upload an image" />
<input type="submit" id="file_submit" value="Search" class="submit"/>
</form>
请问怎么用JAVA程序(不是JSP)上传一张图片到action指定的URL中啊???有具体代码最好 谢谢
------解决方案--------------------用httpclient
------解决方案--------------------找hessian看看就知道了,这个其实很简单的,如果搞不定再问我
------解决方案--------------------不过如果服务器端代码不可改的话这个就用不聊了,得在看看HTTP协议编程相关的
------解决方案--------------------最传统的方法是自己写IO流,还可以使用工具,fileupload或smartupload
------解决方案--------------------网上有好多的,搜个看看吧,大概就是创建个File,然后使用fileoutputstream将这个file写到服务器端
------解决方案--------------------楼主是用成熟的上传JAR包吧,比如fileupload等
自己写就很麻烦了,需要了解底层HTTP协议
------解决方案--------------------HTTPClient应该是可以的, 你需要用你的浏览器采访那个网站,抓包, 之后你使用HttpClient模拟所有你上传文件的步骤,
因为中途可能会接受一些session cookies, refer等http header, 单纯直接post到那个URL可能不行
------解决方案--------------------用JS实现吧,直接调用网页中原来的JS方法,你只要改下file button的value就可以了。
JAVA代码上传,你没服务器的权限怎么传。先黑了它?
------解决方案--------------------Java code
//保存图片
private void saveImg(HttpServletRequest request,FormFile imgFile,FileForm fileForm){
if (imgFile != null && imgFile.getFileSize() > 0) {
String fileName = imgFile.getFileName();
String sqlPath = "img/" + fileName;
//图片所在路径
String savePath = request.getSession().getServletContext().getRealPath("/")+ "img\\" + fileName;
System.out.println(fileName);
System.out.println(sqlPath);
System.out.println(savePath);
HttpSession session=request.getSession();
session.setAttribute("savePath", savePath);
session.setMaxInactiveInterval(60*60);
//String savePath1=(String)session.getAttribute("savePath");
// 数据库
fileForm.getFile().setFileEmpPhoto(sqlPath);
// 文件
try {
InputStream input = imgFile.getInputStream();
FileOutputStream output = new FileOutputStream(savePath);
byte[] b = new byte[1024];
while (input.read(b) != -1) {
output.write(b);
b = new byte[1024];
}
output.close();
input.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}