问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JSP如何上传图片

发布网友 发布时间:2022-05-11 12:20

我来回答

4个回答

热心网友 时间:2023-07-22 18:30

请几天写了一个、代码给你看看、说明下:这有两个文件夹、都在Web容器(Tomcat)的根目录下、一个临时文件夹、一个保存上传文件的文件夹、

UploadFile.java-----用于上传的servlet
public class UploadFile extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("GBK");response.setContentType("text/html");PrintWriter out = response.getWriter(); // 允许上传的文件格式的列表final String[] allowedExt = new String[] { "jpg", "jpeg", "gif" };// 这里对request进行封装,RequestContext提供了对request多个访问方法RequestContext requestContext = new ServletRequestContext(request);// 判断表单是否是Multipart类型的if (FileUpload.isMultipartContent(requestContext)) {// 实例化一个硬盘工厂DiskFileItemFactory factory = new DiskFileItemFactory();// 设置缓存区的大小factory.setSizeThreshold(1024 * 1024);// 设置目标临时文件夹String temp=this.getServletContext().getRealPath("/") + "FileTemp";// 设置目标文件夹路径String path = this.getServletContext().getRealPath("/") + "File";// 设置上传文件夹路径factory.setRepository(new File(temp));// 上传组件ServletFileUpload upload = new ServletFileUpload(factory);// 设置文件上传的大小upload.setFileSizeMax(3 * 1024 * 1024);List<FileItem> fileList = null;try {// 获取文件列表fileList = upload.parseRequest(request);} catch (FileUploadException e) {if (e instanceof SizeLimitExceededException) {out.println("文件尺寸超过规定大小:" + 3 * 1024 * 1024 + "字节<p/>");return;}e.printStackTrace();}// 得到所有上传文件Iterator<FileItem> it = fileList.iterator();while (it.hasNext()) {// 得到系统时间long now = System.currentTimeMillis();// 将long类型转换为String类型String prefix = String.valueOf(now);FileItem fileItem = (FileItem) it.next();// 得到文件的后缀String postfix = fileItem.getName().substring(fileItem.getName().lastIndexOf(".") + 1); // 拒绝接受规定文件格式之外的文件类型int allowFlag = 0;int allowedExtCount = allowedExt.length;for (; allowFlag < allowedExtCount; allowFlag++) {if (allowedExt[allowFlag].equals(postfix))break;}if (allowFlag == allowedExtCount) {out.println("请上传以下类型的文件<p />");for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++)out.println("*." + allowedExt[allowFlag]+ " ");return;}// 保存文件,其实就是把缓存里的数据写到目标路径下File newFile = new File(path + "/" + prefix + "." + postfix);// 文件列表为空if (fileItem.getName() == null || fileItem.getName() == "") {out.println("请选择上传文件<p />");}try {if (newFile.createNewFile())fileItem.write(newFile);} catch (Exception e) {e.printStackTrace();}out.println("文件上传成功. 已保存为: " + prefix + "." + postfix+ " 文件大小:" + fileItem.getSize() + "字节<p />");}}out.flush();out.close();}}由于篇幅太长、有些代码已省去、至于储存图片名到数据、这个很简单、、那里已经取到文件名、插入到数据库应该很简单、这里我不副累赘、再赠送两个、一个下载、一个删除、知道就跳过吧、
DownloadFile.java-------用于下载的servlet
public class DownloadFile extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {FileBiz fileBiz = new FileBiz();request.setCharacterEncoding("GBK");// 获取要下载的文件名String fileName = request.getParameter("filename");// 获取文件的绝对路径String fileDir = this.getServletContext().getRealPath("/File");/** 设置MS下载页头 */response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition", "attachment;" + " fileame="+ fileName); //把方法写在另一个类里面了、fileBiz.download(response.getOutputStream(), fileDir, fileName);}}//下载文件public void download(OutputStream os, String fileDir,String fileName) {try {InputStream is = new FileInputStream(fileDir + "/" + fileName);int hasRead = 0;byte[] buffer = new byte[4096];while ((hasRead = is.read(buffer, 0, buffer.length)) != -1) {os.write(buffer, 0, hasRead);}os.flush();os.close();is.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {System.out.println("下载中文件数据传输出错");e.printStackTrace();}}
下载没什么好说的、注意传过来的filename就行了、

DeleteFile.java------用于删除的servletpublic class DeleteFile extends HttpServlet {public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setCharacterEncoding("GBK");response.setContentType("text/html");PrintWriter out = response.getWriter();// 获取要删除的文件名String fileName = request.getParameter("filename");// 获取文件的绝对路径String fileDir = this.getServletContext().getRealPath("/File");if(fileBiz.delete(fileDir,fileName)) out.println("删除成功");elseout.println("删除失败");}} //删除文件public boolean delete(String fileDir,String fileName){return new File(fileDir+"/"+fileName).delete();}
删除文件更简单、一行代码的事情、
其实这些都是基于流的操作、还有很过方法等着我们去尝试吧、
至于jar包的话、安装时应该有、没有百度一下、到处都是、还有一种方式上传、下载、没试过、用的是jspSmartUpload包、有时间研究研究、
代码有点多、多点乱、但、也没办法了、希望你能看明白、
就这样了、祝你好运、

热心网友 时间:2023-07-22 18:31

如果你是纯JSP写的,可以用SmartUpload.在你的页面form 里 <form action="doUpload.jsp" method="POST" enctype="multipart/form-data">
文件名:<input type="text" name="name"/><br>
请选择上传的文件:<input type="file" name="file1"/>
<input type="submit" value="上传"/>
</form> 注意:enctype="multipart/form-data"这个一定要这样设置,具体什么意思我也不是很清楚.....(呵呵) 提交到执行的页面如下: //实例化上传组件
SmartUpload upload = new SmartUpload();
//初始化上传组件
upload.initialize(this.getServletConfig(), request, response);
//开始上传
upload.upload();
//获取上传的文件列表对象
Files f = upload.getFiles();
//获取文件对象
File fil = f.getFile(0);
//去掉文件后缀
String ext = fil.getFileExt();
//判断文件类型是否是jpg格式jpg,gif,bmp,png,JPG,GIF,BMP,PNG
if (!(ext.equals("jpg")) && !(ext.equals("gif")) && !(ext.equals("bmp")) && !(ext.equals("png")) && !(ext.equals("JPG")) && !(ext.equals("GIF")) && !(ext.equals("BMP")) && !(ext.equals("PNG"))) {
out.println("<script type='text/javascript'>alert('文件类型错误');location.replace('upLoadPhoto.jsp');</script>");
return;
}
//满足条件进行文件的上传uploadImages在webRoot文件夹下的一个目录
fil.saveAs("uploadImages/" + fil.getFileName());
String filepath = "uploadImages/" + fil.getFileName(); //保存到数据库的路径 OK.这样就可以了.....

热心网友 时间:2023-07-22 18:31

    jsp使用I/O文件操作类,可以将图片转成二进制的形式,然后保存在服务器中的一个文件夹,示例如下:

<%...@ page contentType="text/html;charset=gb2312"%>     
<%...@ page import="java.util.*"%>     
<%...@ page import="java.text.*"%>     
<%...@ page import="java.io.*"%>   
<%...@ page import="com.sun.image.codec.jpeg.*"%>   
<%...@ page import="java.awt.image.*"%>   
<%...@ page import="java.awt.*"%>   
     
<%...   
  String name=request.getParameter("name");   
  name=new String(name.getBytes("ISO-8859-1"));    
  String ima=request.getParameter("image");    
 
  try{   
  String path=request.getRealPath("/");   
  FileOutputStream ot = new FileOutputStream(path+name+".jpg");   
// ServletOutputStream ot=response.getOutputStream(); //也可以直接输出显示   
  FileInputStream in=new FileInputStream(ima);     
  JPEGImageDecoder jpgCodec = JPEGCodec.createJPEGDecoder(in);   
  BufferedImage image = jpgCodec.decodeAsBufferedImage();   
  JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(ot);   
  encoder.encode(image);     
  in.close();   
  ot.close();   
  out.print("JSP上传图片成功!<BR>");   
  //加载上传成功的图片   
  out.print("<IMG width=200 height=200 src='"+name+".jpg' />");   
}   
catch(Exception e)   
{   
System.out.print(e.toString());   
}   
%>

热心网友 时间:2023-07-22 18:32

留下邮箱,我发代码给你。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
想买红米但没银行卡 开美宜佳便利店是加盟好还是直接转一个美宜佳店好 ...就给你一个交易号,能到美宜佳付款,请问美宜佳是怎样付款的_百度知 ... 用美宜佳代购会不会看到我买的东西 重返帝国弓弩营对诸葛连弩有加成吗 重返帝国城市风格选什么好 重返帝国城市风格选择推荐 重返帝国城市风格怎么切换 重返帝国城市如何切换风格 重返帝国城市风格大全 特色兵种及增益介绍 重返帝国特殊兵种怎么生产-特殊兵种生产攻略 重返帝国怎么训练诸葛弩 JSP页面显示图片 jsp上传图片到tomcat服务器后,怎么在页面显示 jsp上传图片后怎么实时显示出来 jsp怎么实现浏览本地图片选中上传到页面上,并且保存在数据库,从数据库读取也可以显示在页面上? 青红椒,香菇白菜,海带,虾米可以一起吃吗? 鲫鱼冬瓜虾米海带烧汤去湿吗 虾米冬瓜海带汤的基本信息 虾米,鸡蛋,海带,紫菜,木耳,香菜,西红柿一起做汤会中毒吗? 红萝卜、海带、虾米可以一起煮汤吗? 我的在对方显示: 核实对方身份,谨防诈骗。如何解除? 梦见女儿头发掉了2大片 photoshop中如何做立体效果图(实物),如图: 制作吹泡泡用的肥皂水时为什么要先把肥皂水放在冰箱里? 吹泡泡的肥皂水除了肥皂和水之外还有什么成份吗? 为什么肥皂水加糖吹泡泡不容易破? 求推荐一个可以记录成长日记的APP 你好,5G已经来了,对于已经绑定4G合约套餐的客户,是不是只能等合约结束才能转5G套餐了? 电信手机畅享套餐合约1440/60元/24个月什么意思 5G 199元套餐? 山东联通5G套餐预存120打8折合约是什么意思 一部手机两个手机号怎么申请两个? 用Java Web的jsp制作图片上传和显示如何实现 通过JSP怎样上传图片到服务器 jsp上传图片,最好完整代码。100分! 用jsp、java实现上传图片,保存到数据库,从数据库中提取,显示到页面... java实现图片上传至服务器并显示,如何做?希望要具体的代码实现_百度知 ... JSP页面选择本地图片文件,提交到项目下的一个文件夹里。上传成功的话JSP页面上就显示刚上传的图片缩略图 java怎么上传图片然后显示在JSP页面中 jsp中怎么上传图片啊 jsp用upload实现图片上传时图片不能显示出来(没有显示错误) 临床检验诊断学和临床医学检验的区别 学临床检验属于临床医学吗 临床医学和医学检验哪个比较好 医学检验属于临床医学类? 医学检验和临床医学哪个好 这种水表怎么查余额和每天用水量? 第一次交水费,水费的出账单什么样?出账单能查到每个月的用水情况么? 天津自来水公司可以查询每个月用水量吗? 水费怎样查某段用水量 ...突然做梦梦见妻子跟别人发生性关系是怎么一回事? 有谁能提供给我最开始QQ的默认聊天表情里那个狗狗头的头像。在下感激不尽。