96编辑器旗下产品
找图
终身
ID:0
到期时间:永久
退出登录
您的位置:首页 > 百科管理 > 详情

java实现图片压缩包批量上传-java图片批量上传代码?

原创:找图网 2023-05-03 19:38:04
  • 用java完成图片多张批量上传的功能,还有就是后台的应该怎么处理上传的照片。

  • 环境准备

    1. 下载并安装Tomcat(已经有很多关于Tomcat安装以及使用的文章,在这里不再介绍);

    2. 下载File upload的jar包,并将该文件拷贝到{$TOMCAT}/common/lib目录下(其中{$TOMCAT}为Tomcat的安装目录);

    3. 由于Fileupload子项目同时要用到另外一个项目commons-Beanutils,所以必须下载Beanutils,并将解压后的文件拷贝到{$TOMCAT}/common/lib目录下。

    开发文件上传页面

    文件上传的界面如图1所示。为了增加效率我们设计了三个文件域,同时上传三个文件。

    图1 文件上传界面

    页面的HTML代码如下:

    <html>

    <head>

    <title>文件上传演示</title>

    </head>

    <body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”>

    <center>

    <h1>文件上传演示</h1>

    <form name=“uploadform”method=“POST” action=“”ENCTYPE=“multipart/form-data”>

    <table border=“1”width=“450”cellpadding=“4” cellspacing=“2”bordercolor=“#9BD7FF”>

    <tr><td width=“100%”colspan=“2”>

    文件1:<input name=“file1”size=“40”type=“file”>

    </td></tr>

    <tr><td width=“100%”colspan=“2”>

    文件2:<input name=“file2”size=“40”type=“file”>

    </td></tr>

    <tr><td width=“100%”colspan=“2”>

    文件3:<input name=“file3”size=“40”type=“file”>

    </td></tr>

    </table>

    <br/><br/>

    <table>

    <tr><td align=“center”><input name=“upload” type=“submit”value=“开始上传”/></td></tr>

    </table>

    </form>

    </center>

    </body>

    </html>

    代码中要特别注意的是黑体处。必须保证表单的ENCTYPE属性值为multipart/form-data,这样浏览器才能正确执行上传文件的操作。

    处理上传文件信息

    由于本文主要是讲述如何使用Commons-fileupload,所以为了便于修改、调试,上传文件的保存使用一个JSP文件来进行处理。我们将浏览器上传来的所有文件保存在一个指定目录下并在页面上显示所有上传文件的详细信息。保存页面处理结果见图2所示。

    图2 保存页面

    下面来看看的代码:

    <%

    /**

    * 演示文件上传的处理

    * @author <a href=“mailto:@”>Winter Lau</a>

    * @version $Id: ,v 1.00 2003/03/01 10:10:15

    */

    %>

    <%@ page language=“java”contentType=“text/html;charset=GBK”%>

    <%@ page import=“.*”%>

    <%@ page import=“.*”%>

    <html>

    <head>

    <title>保存上传文件</title>

    </head>

    <%

    String msg = “”;

    FileUpload fu = new FileUpload();

    // 设置允许用户上传文件大小,单位:字节

    (10000000);

    // maximum size that will be stored in memory?

    // 设置最多只允许在内存中存储的数据,单位:字节

    (4096);

    // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

    (“C:\\TEMP”);

    //开始读取上传信息

    List fileItems = (request);

    %>

    <body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”>

    <font size=“6”color=“blue”>文件列表:</font>

    <center>

    <table cellpadding=0 cellspacing=1 border=1 width=“100%”>

    <tr>

    <td bgcolor=“#008080”>文件名</td>

    <td bgcolor=“#008080”>大小</td>

    </tr>

    <%

    // 依次处理每个上传的文件

    Iterator iter = ();

    while (()) {

    FileItem item = (FileItem) ();

    //忽略其他不是文件域的所有表单信息

    if (!()) {

    String name = ();

    long size = ();

    if((name==null||(“”)) && size==0)

    continue;

    %>

    <tr>

    <td><%=()%></td>

    <td><%=()%></td>

    </tr>

    <%

    //保存上传的文件到指定的目录

    name = (‘:’,‘_’);

    name = (‘\\’,‘_’);

    (“F:\\”+ name);

    }

    }

    %>

    </table>

    <br/><br/>

    <a href=“”>返回上传页面</a>

    </center>

    </body>

    </html>

    在这个文件中需要注意的是FileUpload对象的一些参数值的意义,如下面代码所示的三个参数sizeMax、sizeThreshold、repositoryPath:

    FileUpload fu = new FileUpload();

    // 设置允许用户上传文件大小,单位:字节

    (10000000);

    // maximum size that will be stored in memory?

    // 设置最多只允许在内存中存储的数据,单位:字节

    (4096);

    // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

    (“C:\\TEMP”);

    这3个参数的意义分别为:

    SizeMax 用来设置上传文件大小的最大值,一旦用户上传的文件大小超过该值时将会抛出一个FileUploadException异常,提示文件太大;

    SizeThreshold 设置内存中缓冲区的大小,一旦文件的大小超过该值的时候,程序会自动将其它数据存放在repositoryPath指定的目录下作为缓冲。合理设置该参数的值可以保证服务器稳定高效的运行;

    RepositoryPath 指定缓冲区目录。

    使用注意事项

    从实际应用的结果来看该模块能够稳定高效的工作。其中参数SizeThreshold的值至关重要,设置太大会占用过多的内存,设置太小会频繁使用硬盘作为缓冲以致牺牲性能。因此,设置该值时要根据用户上传文件大小分布情况来设定。例如大部分文件大小集中在100KB左右,则可以使用100KB作为该参数的值,当然了再大就不合适了。使用commons-fileupload来处理HTTP文件上传的功能模块很小,但是值得研究的东西很多。

  • java批量上传图片

  • var i = 0;

    // 增加一行附件上传输入框

    function insert_row()

    {

    i++;

    var row;

    var cell;

    row = ();

    cell = ();

    = "<input style=\"width:100%\" type='file' name='myFile" + i + "'>";

    }

    <td colspan=2>

    附件:

    <img src="/images/icons/0013_b.gif" align="absmiddle" alt="增加附件" onclick="insert_row();">

  • java图片批量上传代码?

  • 用struts也可以实现 多文件上传

    下面是我写的代码,作为参考!

    /*文件目录*/

    public static String [] fileArray={

    "",

    "",

    "",

    ""};

    /**

    * @author Caoshun

    * @see 接收并保存文件

    * */

    public static void receiveAndSaveAllFileByPath(ActionForm form,String rootPath1,String rootPath2){

    String fileName="";

    //获取表单中的文件资源

    Hashtable<Object, Object> files = ().getFileElements();

    //遍历文件,并且循环保存

    //当前处理文件序号

    int file_num=1;

    for (Enumeration<Object> e = (); e.hasMoreElements();) {

    /*根据处理的当前文件下标,确定文件名*/

    fileName=fileArray[file_num-1];

    FormFile file = (FormFile) ((String) e.nextElement());

    if (file != null && () > 0) {

    try {

    //使用()来获取一个文件的输入流进行保存。

    //文件名

    //String fileName = ();

    //("debug in on line 152 fileName is : "+fileName);

    //文件大小

    //int fileSize = ();

    //文件流

    InputStream is = ();

    //将输入流保存到文件

    //String rootPath = ().getRealPath("files");

    //往cn中写入

    File rf = new File(rootPath1);

    FileOutputStream fos = null;

    fos = new FileOutputStream(new File(rf, fileName));

    byte[] b = new byte[10240];

    int real = 0;

    real = (b);

    while (real > 0) {

    (b, 0, real);

    real = (b);

    }

    //往en中写入

    File rf2 = new File(rootPath2);

    InputStream is2 = ();

    FileOutputStream fos2 = null;

    fos2 = new FileOutputStream(new File(rf2, fileName));

    byte[] b2 = new byte[10240];

    int real2 = 0;

    real2 = (b2);

    while (real2 > 0) {

    (b2, 0, real2);

    real2 = (b2);

    }

    //关闭文件流

    ();

    ();

    ();

    ();

    } catch (RuntimeException e1) {

    ();

    } catch (Exception ee) {

    ();

    }

    ();

    }

    file_num++;

    }

    }

    最新文章 更多
    最新素材 更多
    公司介绍 网站地图 图片资讯
    Copyright © 2010-2022 山东找图网络科技有限公司  鲁ICP备18007836号-3  邮箱:15653358549@163.com