欢迎分享,转载请注明来源:夏雨云
使用一些已有的组件帮助我们实现这种上传功能。常用的上传组件:Apache 的 Commons FileUploadJavaZoom的UploadBeanjspSmartUpload以下,以FileUpload为例讲解1、在jsp端<form id="form1" name="form1" method="post" action="servlet/fileServlet" enctype="multipart/form-data">要注意enctype="multipart/form-data"然后只需要放置一个file控件,并执行submit操作即可<input name="file" type="file" size="20" ><input type="submit" name="submit" value="提交" >2、web端核心代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8") DiskFileItemFactory factory = new DiskFileItemFactory() ServletFileUpload upload = new ServletFileUpload(factory) try { List items = upload.parseRequest(request) Iterator itr = items.iterator() while (itr.hasNext()) {FileItem item = (FileItem) itr.next()if (item.isFormField()) { System.out.println("表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8"))} else { if (item.getName() != null &&!item.getName().equals("")) { System.out.println("上传文件的大小:" + item.getSize()) System.out.println("上传文件的类型:" + item.getContentType()) System.out.println("上传文件的名称:" + item.getName()) File tempFile = new File(item.getName()) File file = new File(sc.getRealPath("/") + savePath, tempFile.getName()) item.write(file) request.setAttribute("upload.message", "上传文件成功!") }else{ request.setAttribute("upload.message", "没有选择上传文件!") }} } }catch(FileUploadException e){ e.printStackTrace() } catch (Exception e) { e.printStackTrace() request.setAttribute("upload.message", "上传文件失败!") } request.getRequestDispatcher("/uploadResult.jsp").forward(request, response) }这里你弄错了一个问题\x0d\x0a你的程序是要传递图片的二进制数据.\x0d\x0a而不是传递路径,然后再到服务器读取文件数据(你的服务器有这个文件?)\x0d\x0a只有当你的服务器下有这个文件了,你传递一个路径,读取是可以的.\x0d\x0a//---\x0d\x0a关于如何上传文件, 自己google一下,很多教程
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
如何开启王者荣耀的网络优化功能 怎样开启王者荣耀的网络优化功能
上一篇
2023-07-28
为什么穿越火线生存挑战的体验服登录时显示连接服务器失败?
下一篇2023-07-28
评论列表(0条)