求:用纯jsp页面上传文件的代码(不用其它组件)?

用html标签的<inputtype="file"/>可以实现吗?我在本机上传文件,没有任何问题,可是远程上传就失败,提示找不到图片。这问题怎么解决。JSP上的代码是<i... 用html标签的<input type="file" />可以实现吗?我在本机上传文件,没有任何问题,可是远程上传就失败,提示找不到图片。这问题怎么解决。
JSP上的代码是<input type="file" name="picurl" />,(我这里用了struts)后台JAVA代码是//将要保存的路径
String load = request.getSession().getServletContext().getRealPath("/");
//取得上传图片的URL
String url = request.getParameter("url");
//取得一个新的图片的名字(包括.jgp的后缀名)
String fileName = CompanyUtil.getfilename(".jpg");
//IO流拷贝上传图片文件
try {
FileOutputStream fos = new FileOutputStream(load + "images/pic/" + fileName);
FileInputStream fis = new FileInputStream(new File(url));
byte[] b = new byte[256];
int len = 0;
while ((len=fis.read(b)) != -1) {
fos.write(b,0,len);
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
AllException.doException(e, "上传图片时发生I/O异常!", request, response);
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
AllException.doException(e, "上传图片时发生I/O异常!", request, response);
return null;
}
能上传文件和字符串一起上传的例子,使用组件也行。关键是合理的实现功能。
展开
 我来答
tomiscat2009
2009-04-20 · TA获得超过2434个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:538万
展开全部
FileInputStream fis = new FileInputStream(new File(url));
这个InputStream不是这样拿的啊,new File(url) 的意思是读取"url"这个文件,在自己机器上当然可以,远程当然不行了,比如我机器上要传个文件到你的服务器,你new File("D:\\image\\a.jpg");你说能拿到我D盘上的图片吗?
另外:byte[] b = new byte[256]; 假如我的图片有1M,你这个b数组怎么可能装的下呢!!应该正确拿到FileInputStream,然后byte[] b = new byte[fis.available()];

既然你用struts,那就用struts来拿:
<input type="file" name="picurl" />
注意这里:
<form action="picurlupload.do" method="post" enctype="multipart/form-data">//一定要enctype="multipart/form-data"
写个Form:
PicurlForm ,只有一个FormFile类型的属性:private FormFile picurl;生成get、set
写个Action,PicurlUploadAction ,只要在execute方法里调用:
① PicurlForm ff = (PicurlForm)form;
② FormFile picurl = ff.getPicurl();
③ FileOutputStream fos = new FileOutputStream(load + "images/pic/" + fileName);
④ fos.write(picurl.getFileData());
就搞定了!!

刚好这边有些写好的文件上传代码,楼主需要的话可以M我!!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式