精华内容
下载资源
问答
  • Java附件上传

    千次阅读 2014-12-04 16:38:59
    上传附件方法,包括前台页面和后台代码

    做项目时用到上传记录一下以后好用。

    这是页面内容

    <body>
    <iframe style="display:none" id="hiddenFrame" name="hiddenFrame" ></iframe>
    <form id="frm" name="frm" method="post" enctype="multipart/form-data" target="hiddenFrame">
    <table cellpadding="0" cellspacing="0" border="0" height="100%" width="100%" class="content_box">
     <tr>
         <td width="5" valign="top">&nbsp;</td>
          <td valign="top" align="center">
            <div class="title_div" style="width:70%"><font>项目基本信息</font></div>
                <table cellpadding="0" cellspacing="0" border="0" width="70%" class="list_tab_02" style="margin-top:10px;">
                 
                  <tr>
                    <td ><p align="center">标题</p></td>
                    <td align="left"><input type="text" id="title" name="title" <%if(dataList.size()>0){%>
                     value="<%=((Object[])dataList.get(0))[3].toString() %>"
                    <%} %> readonly="readonly"/></td>
                  </tr>
                  <tr>
                    <td ><p align="center">附件上传</p></td>
                     <td align="left">
                      <input id="qsclfj" name="qsclfj" type="hidden"/>
                      <input id="file1" type="file" multiple="multiple" />
                      <input id="btnupload" οnclick="upload()" type="button" value="上传" class="sc_btn" />
                     </td>
                  </tr>
                  <tr id="filetr" style="display:none">
                    <td class="bg_04">附件列表:</td>
                        <td style="background-color:rgb(233,233,242)" id="fileList1" align="left"></td>
                  </tr>
                  <tr>
                    <td ><p align="center">意见</p></td>
                     <td align="left"><textarea id="bz" name="bz" cols="20" rows="5"></textarea></td>
                  </tr>
                </table>
      <div class="button_div" style="width:70%;">
      <img src="<%=cp %>/style/images/button_tj_img.gif" οnclick="save()"/>
      <img src="<%=cp %>/style/images/button_ht_img.gif" οnclick="back()"/>
      </div>
       </td>
            <td width="5" valign="top">&nbsp;</td>
        </tr>
    </table>
    </form>
    </body>

    Javascript事件

    function upload(){
       var nsrglm = document.getElementById("nsrglm").value;
       var xmbm = document.getElementById("xmbm").value;
       var url = "<%=cp%>/upload/uploadFilesDo?nsrglm="+nsrglm+"&xmbm="+xmbm;
       uploadfiles(url,'<%=cp %>','file1','frm','qsclfj','fileList1','filetr');
      }

    后台代码

    public class UploadFilesAction extends ActionSupport {

     private static final long serialVersionUID = 1L;
     
     public static final SimpleDateFormat sdformat = new SimpleDateFormat("yyyyMMdd");
     
     // 对应文件域的file名称,封装文件内容
     private File[] file;
     // 封装文件类型
     private String[] fileContentType;
     // 封装文件名
     private String[] fileFileName;

     /**
      * 文件拷贝
      * @param sourceFile
      * @param destFile
      */
     private void copyFile(File sourceFile, File destFile) {
      FileInputStream fin = null;
      FileOutputStream fout = null;
      try {
       int c;
       byte[] b = new byte[1024 * 5];
       fin = new FileInputStream(sourceFile);
       fout = new FileOutputStream(destFile);
       while ((c = fin.read(b)) != -1) {
        fout.write(b, 0, c);
       }
       fout.flush();
      } catch (Exception e) {
       //
      } finally {
       try {
        fin.close();
        fout.close();
       } catch (IOException e) {
        //
       }

      }

     }

     /**
      * 上传附件的通用方法
      *
      * @return
      * @throws Exception
      */
     @SuppressWarnings("unchecked")
     public void uploadFiles() throws Exception {
      try {
       HttpServletRequest request = ServletActionContext.getRequest();
       HttpServletResponse response = ServletActionContext.getResponse();
       response.setContentType("text/html");
       PrintWriter out = response.getWriter();
       Map retMap = new HashMap();
       StringBuffer json = new StringBuffer();
       // String forward = request.getParameter(TaxConstants.FORWARD_NEXT);
       String nsrglm = request.getParameter("nsrglm");
       String xmbm = request.getParameter("xmbm");
       String realpath = FileUtil.getFileSaveRealPath();
       String childDirPath = nsrglm + "/" + xmbm;
       String fileFolder = realpath + "/" + childDirPath;
       FileUtil.isExistFolder(fileFolder);// 判断是否存在目录,不存在创建
       if (file != null && file.length > 0) {
        for (int i = 0; i < file.length; i++) {
         File destFile = new File(fileFolder, fileFileName[i]);
         if (!destFile.exists()) {
          destFile.createNewFile();
         }
         copyFile(file[i], destFile);
        }
        retMap.put("success", "true");
        retMap.put("flag", "ok");
        retMap.put("msg", "上传成功!");
        retMap.put("fileName", fileFileName[0]);
        retMap.put("childDir", childDirPath);
        json
          .append("{\"success\":\"" + retMap.get("success")
            + "\",\"flag\":\"" + retMap.get("flag")
            + "\",\"msg\":\"" + retMap.get("msg")
            + "\",\"fileName\":\"" + retMap.get("fileName")
            + "\",\"childDir\":\"" + retMap.get("childDir")
            + "\"}");
        out.print(json.toString());
       } else {
        retMap.put("flag", "fail");
        retMap.put("msg", "不提供所请求的服务.");
        retMap.put("success", "false");
        json.append("{\"success\":\"" + retMap.get("success")
          + "\",\"flag\":\"" + retMap.get("flag")
          + "\",\"msg\":\"" + retMap.get("msg") + "\"}");
        out.print(json.toString());
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
      //RequestDispatcher rd = request.getRequestDispatcher(forward);
      //rd.forward(request, response);
     }
     
     @SuppressWarnings("unchecked")
     public void deleteFiles() throws IOException{
      try{
      HttpServletRequest request = ServletActionContext.getRequest();
      HttpServletResponse response = ServletActionContext.getResponse();
      request.setCharacterEncoding("utf-8");
      response.setContentType("text/html;charset=utf-8");
      PrintWriter out = response.getWriter();
      Map retMap = new HashMap();
      StringBuffer json = new StringBuffer();
      String filePath = request.getParameter("filePath");
      File file = new File(FileUtil.getFileSaveRealPath() + "/" + filePath);
      if(!file.isDirectory()){
       if(file.delete()){
        retMap.put("flag", "ok");
        retMap.put("msg", "删除文件成功!.");
        retMap.put("success", "true");
        json.append("{\"success\":\""+ retMap.get("success") +"\",\"flag\":\""+ retMap.get("flag") +"\",\"msg\":\""+ retMap.get("msg") +"\"}");
        out.print(json.toString());
       }else{
        retMap.put("flag", "fail");
        retMap.put("msg", "不提供所请求的服务.");
        retMap.put("success", "false");
        json.append("{\"success\":\""+ retMap.get("success") +"\",\"flag\":\""+ retMap.get("flag") +"\",\"msg\":\""+ retMap.get("msg") +"\"}");
        out.print(json.toString());
       }
       
      }else{
       retMap.put("flag", "fail");
       retMap.put("msg", "不提供所请求的服务.");
       retMap.put("success", "false");
       json.append("{\"success\":\""+ retMap.get("success") +"\",\"flag\":\""+ retMap.get("flag") +"\",\"msg\":\""+ retMap.get("msg") +"\"}");
       out.print(json.toString());
      }
      }catch(Exception e){
       e.printStackTrace();
      }
     }

     public File[] getFile() {
      return file;
     }

     public void setFile(File[] file) {
      this.file = file;
     }

     public String[] getFileContentType() {
      return fileContentType;
     }

     public void setFileContentType(String[] fileContentType) {
      this.fileContentType = fileContentType;
     }

     public String[] getFileFileName() {
      return fileFileName;
     }

     public void setFileFileName(String[] fileFileName) {
      this.fileFileName = fileFileName;
     }

    }

     

    展开全文
  • java附件上传与下载

    2013-11-24 23:08:17
    java附件上传与下载
  • java附件上传功能

    千次阅读 2018-01-22 10:02:35
    提供附件上传功能,支持多个附件同时上传,显示上传进度条,删除附件等功能。 2、附件代码下载路径:点击打开链接

    提供附件上传功能,支持多个附件同时上传,显示上传进度条,删除附件等功能。

    2、附件代码下载路径:点击打开链接

    展开全文
  • JAVA附件上传之图片上传

    千次阅读 2017-07-18 19:15:57
    对于我来说,图片上传就是我在从事Java工作以来,遇到的相当凶猛的一只.我曾经在写移动端接口的时候,需要写一个图片上传的接口.当然,只是简单的从PC端拷过来.(现在看来非常easy,但当时确实花了我整整两天的时间).在...

    一 前言

       在Java的成长道路上,有很多的拦路虎.而它们中的每一个都可能曾经让你苦不堪言.对于我来说,图片上传就是我在从事Java工作以来,遇到的相当凶猛的一只.我曾经在写移动端接口的时候,需要写一个图片上传的接口.当然,只是简单的从PC端拷过来.(现在看来非常easy,但当时确实花了我整整两天的时间).在拷贝接口后,可能会遇到各种水土不服的问题,而我的同事也遇到了这个问题,我想应该也有很多其他童鞋和朋友会遇到类似的问题.所以我在这里记录一下PC端图片上传的大概过程,以及可能会遇到的问题.巩固自己,帮助他人.

    二 流程简述

      以添加商品为例,我们 在添加和发布商品的时候,通常会用到图片上传,也有可能是多张图片上传.但是道理都是一样的,在理清单张上传后,我相信对于从事java的朋友来说,这种管中窥豹,举一反三应该不难.

      这里一般会用两个表,产品表product和附件表attach.两者的关联外键为attachRootId.此ID为图片上传时生成的随机的唯一的图片标识.我们在操作商品的图片数据时,都是使用这个ID来实现关联的.



      在产品上传的页面,我们需要引入由美工设计好的图片上传页面.可以使用iframe标签包裹,以调整样式至理想的效果.这里大致的模块包含三部分:图片显示区域,功能按钮区域和上传提示区域(当然这些和我们Java无关,忍不住多说了一点),如下图:

       具体的效果如下图:

     上传页面显示细节:

      其实这里和我们一般的通过请求接口来获取页面的流程是一模一样的,主要想说的是在请求时的参数设置问题.我在这里把参数分为三种,分别是attachRootId,uploadType和fileType.

      在一个系统内,有多个地方会用到图片上传,为了防止数据过多导致混乱,也为了更好地去命名图片存放路径,我们在之前会规定好每个模块对应的图片类型如01对应企业,02对应商品.同时附件本身还有一个文件类型区分如01代表图片,02代表视频,03代表文档等这些都是我们在进行上传操作时需要用到的重要参数,也是请求接口时需要用的参数.

      另一个需要用到的参数就是我们上文提到的attachRootId,attachRootId不仅在上传的时候需要使用,在上传成功后显示图片也需要用到.那我们在添加商品时,可以直接生成一个attachRootId,具体的生成规则因人因公司而异,这里就不细说了.但是这个ID必须要保证它的唯一性.我们在修改商品信息时,数据库里已经有了这个商品图片的数据了,为了避免资源浪费,我们可以事先判断这个ID是否存在,如果存在就继续使用原有的attachRootId,不存在就生成一个新的.

     具体的后台上传操作:

     接收图片上传的数据:

     数据包括图片信息和参数信息.使用DefaultMultipartHttpServletRequest类来传递图片信息,使用CommonsMultipartFile类来接收图片信息,具体如下:


     数据接收成功后,我们需要对文件信息进行判断,确认用户上传的图片是否合法,主要包含文件是否上传判断,文件大小判断,文件类型判断以及图片数量判断.代码如下:


     数据判断通过后,生成图片的上传路径,这里就需要用到我们接收到的参数了.一般来说,我们上传的文件会存放在项目工作空间里的固定地址,主要就是通过if else实现的.具体的代码就不贴了.因为这部分其实并不重要的,而且难度并不高.

     在生成图片路径后,接下来要进行添加水印和保存图片存放信息到数据库.因此在这之前,要设置好操作数据库需要的参数信息.如attachRootId,文件类型,存放地址,文件名称等,代码如下:


    参数准备好就可以执行添加水印和上传操作了.

    三 部分问题解决方法

      图片上传总是提示失败:

      检查是否成功请求图片上传接口,如果已经请求到了,就走debugger,一步一步地检查,一定要耐心.通常这种错误都出现在数据验证和上传操作里

      图片上传成功后,图片显示区域显示404:

      不用多想,路径处理有问题.这里问题要么出在参数上,要么出现在根路径上

      图片上传成功,页面也显示,但是在详情页面无法显示:

      检查数据库保存的路径信息.对比取图片的sql,检查哪里不同


    关于图片上传就是这么多了,感觉自己表达能力有限.有些想要说的在写的过程中全部忘完了,不知道大家有没有遇到这种事情,反正我是经常遇到(笑cry).如果大家有问题,欢迎提问.在能力范围之内,一定解答!

    展开全文
  • Java附件上传统一管理工程
    展开全文
  • java 上传附件实例

    千次阅读 2019-10-15 16:50:58
    @ApiOperation(value = “上传作业附件”) @RequiresPermissions(“xszyb:addZyFile”) @PostMapping("/addZyFile") public Msg addZyFile(@RequestParam(“file”) MultipartFile file, HttpServletRequest request...
  • 上传附件代码:借助commons-fileupload-1.2.jarpackage com.str;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io....
  • 创建SpringBoot工程 勾选lombok ...application.yaml 文件配置文件上传限制大小 spring: servlet: multipart: max-request-size: 1024MB max-file-size: 1024MB entity实体类定义 pac...
  • Java上传附件大小限制都取消了,不知道哪还是弹出来“上传文件大小不能超过8M的最高限额,请重新上传
  • Java 上传文件 ,后端接口大体逻辑。 上传文件是我们日常开发过程中,经常遇到的一个场景,也是我们后端程序猿必须要会的,今天周五,事情做完,离下班还有点时间,来写写大体思路。 本文顺序将主要讲述的是...
  • 上传附件代码:借助commons-fileupload-1.2.jar package com.str; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io....
  • java上传附件上传视频、音频、图片有啥区别,为什么需要分开做处理
  • 4. 包含中文名称的文件上传、附件上传成功后,在数据库表中插入一条记录,记录信息包括一个随机字符的字段,在下载时候通过该字段找到相应的附件 5. 上传文件时候, 反映上传进度 界面设计说明 对上传操作的页面显示...
  • java上传附件到文件系统

    千次阅读 2008-11-19 16:02:00
    附件存储在数据库中的好处是附件不容易丢失,不过要写入数据库,然后在读出来就有点不方便了.难道一定要把附件存储在数据库中?可以把附件的相对地址存储在数据库中.附件真真保存在文件系统中.这样很容易读出来: ...
  • java 支持 超大上G , 多附件上传

    千次阅读 2011-03-15 10:51:00
    java 支持 超大上G , 多附件上传   首先 确定要上传的目录   WEB.XML 文件  Java代码  <listener-class><!-- 临时文件收集器 , 支持超大附件必须项 --> org.apache.commons....
  • java 浏览器 附件上传 代码 http解析,即通过f12查看,附件上传这个功能,发起的http请求,其http请求的传往后台action的内容是什么,即http请求正文是什么 http://www.jb51.net/article/96745.htm
  • Java文件上传下载

    2016-12-16 15:10:58
    Java文件上传原理
  • java文件上传功能

    2017-04-24 16:31:29
    java文件上传功能 //jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()...
  • Java 文件上传 MultipartFile

    万次阅读 2017-11-01 09:06:20
    Java 文件上传 MultipartFile 1. 配置MultipartResolver:用于处理表单中的file p:defau
  • package ... import org.springframework.util.Base64Utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; i...
  • 附件上传

    千次阅读 2017-02-16 14:15:36
    1.打上附件上传界面js //打开上传附件界面 function selfUploadFile() { var url = "/costech/mw/attachment/attachment.jsp?referenceID="; var rtn = window.showModalDialog(url,document,'dialogWidth:...
  • 上传页面uploadExcel.jsp代码:                上传excel         //关闭窗口 function closeWindow(){ var api = frameElement.api, W = api.opener; api.close...
  • Java文件上传接口

    千次阅读 2020-05-03 21:58:12
    1. Java单文件上传接口 import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.text.SimpleDateFormat; import java.util....
  • 通过之前的博客,基本上已经将各个框架上传文件的功能逻辑理清楚,有文件下载肯定就需要有文件上传,那么接下来会跟大家一起分享各个框架上传文件的功能代码;
  • Java文件上传实现

    万次阅读 热门讨论 2018-08-01 15:00:25
    表单 action=上传文件后台接口 method=“post”enctype=“multipart/form-data” 文件输入框&lt;input type=”file”&gt; &lt;form action="/upload" method="post" enctype=&...
  • java上传文件

    千次阅读 2014-09-11 09:50:32
    java上传文件整理
  • 云存储Java客户端上传文件

    千次阅读 2016-09-20 14:17:02
    云存储能做什么打个比方,文件上传这种需求在开发中会经常遇到,例如开发一个BBS,用户会在帖子中插入图片、用户上传头像、上传视频、上传附件等。碰到此类需求,传统的做法是自备服务器和存储,将上传的文件存入...
  • java文件上传和查看

    2020-05-30 13:59:14
    上传代码 @RequestMapping(value = "/imageUpload.do",method = RequestMethod.POST) public String imageUpload(@RequestParam("file") MultipartFile[] multipartFiles, HttpServletRequest request,Model ...
  • JAVA文件上传(带进度条)具体请下载源代码:(1)写文件上传进度监听器类:package com.my.other;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.commons...
  • java文件上传后台

    千次阅读 2018-03-17 16:58:44
    上一篇写了文件上传,是springMVC,因为返回值问题,没有引入转json依赖的jar包,虽然文件上传成功但是前台返回报406错误。导入依赖的两个jar包即可。...java" pageEncoding="UTF-8"%&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,260
精华内容 9,304
关键字:

java附件上传

java 订阅