<form action="" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="file"/>
<input type="button" value="上传" onclick="getJobnum2()"/>
</form>
servlet:
//取得二进制流
ServletInputStream sis = req.getInputStream();
//与输入缓冲流接上
BufferedInputStream bis = new BufferedInputStream(sis);
//获取输出流的物理路径
String imgname = req.getParameter("jobnum");
String path = Utils.getSysParam("PIC_TMP") + "/TMP_" + imgname + ".jpg";
//文件输出流
FileOutputStream fos = new FileOutputStream(path);
//缓冲输出流
BufferedOutputStream bos = new BufferedOutputStream(fos);
//从输入流中读取数据
byte[] buffer = new byte[1024];
int len = 0;
while((len = bis.read(buffer)) != -1) {
//输出读入的数据
bos.write(buffer, 0, len);
}
//关闭流
bos.close();
fos.close();
bis.close();
sis.close();
7 个解决方案
#1
没有高手吗,5555555555555
#2
用上传组件smartUPload
#3
form表单的编码为:enctype="multipart/form-data"
你还可以能过: req.getParameter("jobnum");来取参数的值。
这个不可能吧。
你用:smartUpload组件吧。很轻松搞定
你还可以能过: req.getParameter("jobnum");来取参数的值。
这个不可能吧。
你用:smartUpload组件吧。很轻松搞定
#4
//取得二进制流
ServletInputStream sis = req.getInputStream();
这样写明显是错误的。
原因是从页面传过来的request不仅仅是图片,还有其他的东西,而你只需要的是图片那个属性。
可以使用楼上说的组件。自己写的话比较麻烦。
ServletInputStream sis = req.getInputStream();
这样写明显是错误的。
原因是从页面传过来的request不仅仅是图片,还有其他的东西,而你只需要的是图片那个属性。
可以使用楼上说的组件。自己写的话比较麻烦。
#5
bos.flush();
flush一下即可
flush一下即可
#6
有道理,怪不得图片比原来的大,我试试smartupload
#7
不要忽悠我呀~~
#1
没有高手吗,5555555555555
#2
用上传组件smartUPload
#3
form表单的编码为:enctype="multipart/form-data"
你还可以能过: req.getParameter("jobnum");来取参数的值。
这个不可能吧。
你用:smartUpload组件吧。很轻松搞定
你还可以能过: req.getParameter("jobnum");来取参数的值。
这个不可能吧。
你用:smartUpload组件吧。很轻松搞定
#4
//取得二进制流
ServletInputStream sis = req.getInputStream();
这样写明显是错误的。
原因是从页面传过来的request不仅仅是图片,还有其他的东西,而你只需要的是图片那个属性。
可以使用楼上说的组件。自己写的话比较麻烦。
ServletInputStream sis = req.getInputStream();
这样写明显是错误的。
原因是从页面传过来的request不仅仅是图片,还有其他的东西,而你只需要的是图片那个属性。
可以使用楼上说的组件。自己写的话比较麻烦。
#5
bos.flush();
flush一下即可
flush一下即可
#6
有道理,怪不得图片比原来的大,我试试smartupload
#7
不要忽悠我呀~~