上传下载图片代码jsp,上传图片的代码

发布时间:2023-12-08

上传下载图片代码jsp,上传图片的代码

更新:2022-11-17 14:07

本文目录一览:

1、jsp中如何编写代码实现图片的上传下载
2、jsp上传图片,最好完整代码。100分!
3、JSP如何上传图片?
4、JSP如何上传图片
5、[Jsp上传图片到指定文件夹下 求详细代码](#Jsp上传图片到指定文件夹下 求详细代码)
6、通过JSP怎样上传图片到服务器

jsp中如何编写代码实现图片的上传下载

图片的上传一般是用组件做的,一般不会用jsp去编写,比较常见的图片上传组件有smartUpload,struts框架的file-common-upload等。 试着学习一下吧,很简单好使。

jsp上传图片,最好完整代码。100分!

upfile.jsp 文件代码如下:

<form method="post" action="uploadimage.jsp" name="form1" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" name="sub" value="upload">
</form>

uploadimage.jsp 文件代码如下:

<%@ page language="java" pageEncoding="gb2312"%>
<%@ page import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"%>
<%@ page import="mainClass.*" %>
<html>
<head>
  <title>My JSP 'uploadimage.jsp' starting page</title>
</head>
<body>
<%
  SmartUpload sma = new SmartUpload();
  long file_max_size = 4000000;
  String filename1 = "", ext = "", testvar = "";
  String url = "uploadfiles/";
  sma.initialize(pageContext);
  try {
    sma.setAllowedFilesList("jpg,gif");
    sma.upload();
  } catch (Exception e) {
%>
  <script language="jscript">
    alert("只允许上传jpg,gif图片");
    window.location.href = "upfile.jsp";
  </script>
<%
  }
  try {
    com.jspsmart.upload.File myf = sma.getFiles().getFile(0);
    if (myf.isMissing()) {
%>
  <script language="jscript">
    alert("请选择要上传的文件!");
    window.location.href = "upfile.jsp";
  </script>
<%
    } else {
      ext = myf.getFileExt();
      int file_size = myf.getSize();
      String saveurl = "";
      if (file_size < file_max_size) {
        Calendar cal = Calendar.getInstance();
        String filename = String.valueOf(cal.getTimeInMillis());
        saveurl = request.getRealPath("/") + url;
        saveurl += filename + "." + ext;
        myf.saveAs(saveurl, sma.SAVE_PHYSICAL);
        myclass mc = new myclass(request.getRealPath("data/data.mdb"));
        mc.executeInsert("insert into [path] values('uploadfiles/" + filename + "." + ext + "')");
        out.println("图片上传成功!");
        response.sendRedirect("showimg.jsp");
      }
    }
  } catch (Exception e) {
    e.printStackTrace();
  }
%>
</body>
</html>

本文来自: IT知道网() 详细出处参考:

JSP如何上传图片?

如果你是纯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(); // 保存到数据库的路径

JSP如何上传图片

请几天写了一个、代码给你看看、说明下:这有两个文件夹、都在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;" + " filename=" + 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------用于删除的servlet

public 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("删除成功");
    else
      out.println("删除失败");
  }
  // 删除文件
  public boolean delete(String fileDir, String fileName) {
    return new File(fileDir + "/" + fileName).delete();
  }
}

删除文件更简单、一行代码的事情、 其实这些都是基于流的操作、还有很过方法等着我们去尝试吧、 至于jar包的话、安装时应该有、没有百度一下、到处都是、还有一种方式上传、下载、没试过、用的是jspSmartUpload包、有时间研究研究、 代码有点多、多点乱、但、也没办法了、希望你能看明白、 就这样了、祝你好运、

Jsp上传图片到指定文件夹下 求详细代码

String time = new SimpleDateFormat("yyyyMMddHHmmss")
    .format(Calendar.getInstance().getTime());// 得到系统时间
// 上传技术
SmartUpload up = new SmartUpload();
// 进行初始化
up.initialize(this.getServletConfig(), request, response);
// 开始上传
try {
  up.upload("utf-8");// 设置编码方式。
  int id = Integer.parseInt(up.getRequest().getParameter("id"));// 商品编号
  SmartFiles sf = up.getFiles();// 得到上传的所有图片
  SmartFile file = sf.getFile(0);// 根据索引得到上传图片 多个图片可以用循环:
  String type = file.getFileExt();// 得到图片后缀名
  String folder = "tp/";// 指定文件夹
  String path = folder + time + "." + type;// 路径
  System.out.println(path + "路径");
  file.saveAs(request.getRealPath("/") + path);// 保存图片
} catch (Exception e) {
  e.printStackTrace();
}

// 你搞个邮箱我把SmartUpload jar包 发给你吧。 // 设置from提交

<form action="SellerServet" method="post" enctype="multipart/form-data">

// 加上 enctype="multipart/form-data"

通过JSP怎样上传图片到服务器

  1. 限制文件上传类型只能是图片
function checkFileType(name, file) {
  var extArray = new Array(".doc", ".docx");
  var allowSubmit = false;
  if (!file) {
    return;
  }
  while (file.indexOf("\\") != -1) {
    file = file.slice(file.indexOf("\\") + 1);
  }
  var ext = file.slice(file.indexOf(".")).toLowerCase();
  for (var i = 0; i < extArray.length; i++) {
    if (extArray[i] == ext) {
      allowSubmit = true;
      break;
    }
  }
  if (!allowSubmit) {
    alert("只能上传以下格式的文件:" + (extArray.join("")) + "\n请重新选择再上传.");
    document.getElementById(name).value = "";
  }
}

其中:extArray是要求文件类型。可自行定义。 2. 引入jQuery外部文件

jquery-2.1.4.min.js
  1. 编写js代码
$(function () {
  $('#txtfilePath1').uploadReview({
    width: 350,
    height: 350,
    target: '#uploadReview1_content'
  });
});

其中:txtfilePath1<input:file>widthheight是预览图片的宽度和高度。target是显示预览图片的位置。 4. 编写jsp页面代码

<body>
  <input type="text" class="yourClassName" name="filePath1" id="filePath1"/>
  <input type="file" id="txtfilePath1" name="txtfilePath1" style="display:none;"/>
  <input type="button" onclick="txtfilePath1.click()" id="fileup1" name="fileup1" class="searchThing" value="上传"/>
</body>

注: 这个是很久以前在网上看到的,就整理了下来,但是这么久都没用过,所以也没调试过,你自己试一试研究研究, 再来网上很多博客里,他们写的很详细的,可以去看看