精华内容
下载资源
问答
  • web上传整个文件夹

    千次阅读 2019-08-21 15:01:40
    Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所有浏览器。 支持文件批量...

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。

     

    先说下要求:

    PC端全平台支持,要求支持Windows,Mac,Linux

    支持所有浏览器。

    支持文件批量上传

    支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W。

    支持大文件断点续传,要求刷新浏览器,重启浏览器,重启电脑后仍然能够继续上传。文件大小要求能够支持到50个G。

    支持自动加载本地文件,要求能够自动加载指定的本地文件。

    支持文件批量下载,要求不要在服务器打包。因为50G的文件在服务器打包时间比较长。

    支持文件夹下载,要求不要在服务器打包,下载到本地后要求保留层级结构

    文件列表面板支持路径导航,新建文件夹

     

      对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能就是基于这个实现的。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。

    一、开发环境搭建

      创建一个FileUploadAndDownLoad项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示:

     

    依赖jar包如下

     

    二、实现文件上传

    前台HTML模板

     

    文件块处理逻辑如下

     

    保存文件块逻辑如下

    web.xml配置如下

     

    运行效果如下:

     

    文件面板逻辑

    前台代码

    2.3、文件上传的细节

      上述的代码虽然可以成功将文件上传到服务器上面的指定目录当中,但是文件上传功能有许多需要注意的小细节问题,以下列出的几点需要特别注意的

    1、为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如放于WEB-INF目录下。

      2、为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名。

      3、为防止一个目录下面出现太多文件,要使用hash算法打散存储。

      4、要限制上传文件的最大值。

      5、要限制上传文件的类型,在收到上传文件名时,判断后缀名是否合法。

      针对上述提出的5点细节问题,我们来改进一下UploadHandleServlet,改进后的代码如下:

    文件数据表结构

    文件夹数据表结构

    下载数据表结构

    针对上述提出的5点小细节问题进行改进之后,我们的文件上传功能就算是做得比较完善了。

    三、文件下载

    加载文件列表,注意,这里只列出上传完的文件和文件夹,没有上传完的就不列出了

    数据库的处理逻辑比较简单,注意一下SQL语句中的条件即可

      我们要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作,编写一个ListFileServlet,用于列出Web应用系统中所有下载文件。

    文件列表加载逻辑

           这里简单说一下ListFileServlet中listfile方法,listfile方法是用来列出目录下的所有文件的,listfile方法内部用到了递归,在实际开发当中,我们肯定会在数据库创建一张表,里面会存储上传的文件名以及文件的具体存放目录,我们通过查询表就可以知道文件的具体存放目录,是不需要用到递归操作的,这个例子是因为没有使用数据库存储上传的文件名和文件的具体存放位置,而上传文件的存放位置又使用了散列算法打散存放,所以需要用到递归,在递归时,将获取到的文件名存放到从外面传递到listfile方法里面的Map集合当中,这样就可以保证所有的文件都存放在同一个Map集合当中。

      编写一个用于处理文件下载的Servlet,DownLoadServlet的代码如下:

    文件管理器主要逻辑如下:

    文件管理器所有的逻辑都在PageFileMgr.java中实现。

    另外,文件管理器有一些相关的配置在data目录下

    系统配置数据如下

    路径配置如下

    文件管理器的脚本处理全部放在index.js中

    关于JavaWeb中的文件上传和下载功能的内容就这么多。

    最终实现的效果如下:

    文件批量上传

    文件批量下载

    路径导航

    更详细教程可以参考我的这篇文章:http://blog.ncmem.com/wordpress/2019/08/09/web%E4%B8%8A%E4%BC%A0%E6%95%B4%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9/

    展开全文
  • 七牛云 Java Web上传图片

    千次阅读 2017-06-20 23:49:36
    本文由黑壳网原创本文来源七牛云 Java Web上传图片 - 黑壳网壳叔搞笑一刻没有对手警官抓到正在赌博的四个人。“你们知道这是犯法的吗?”警官向第一个人怒吼道。 “不,我只是在这里看看。” 警官又问第二个人:...

    本文由黑壳网原创

    本文来源七牛云 Java Web上传图片 - 黑壳网

    壳叔搞笑一刻

    没有对手

    警官抓到正在赌博的四个人。“你们知道这是犯法的吗?”警官向第一个人怒吼道。
    “不,我只是在这里看看。”
    警官又问第二个人:“你呢?”
    “我是在等候巴士而已。
    第三个也插嘴:“警官,我是在这里等我的女朋友。”
    警官看了看第四个人,他拿着牌。于是责问他说:“你手中有物证,大概不能抵赖吧?”
    他睨视着警官,回答说:“那么我是跟谁赌博呢?你说说看!”

    今天要说的是七牛云介绍

    今天主要就是在通过Java Web的方式上传图片并且获得图片路径。
    先看一下界面,有点简短,请各位将就一下吧。
    这是上传页面,没错就是两个按钮。
    5e1412bd5b9fc14de075dc71e501adcee287f924-80f58a82d8cdf9de03379b0fa0d705941e73338a.png
    你以为点击完,会出现Duang Duang Duang的效果吗,想多了,只有更剪短的一行img标签显示
    895b2b6cd7a38fe822adecc6a6ba51a23b942e14-2b9499ce02998647e8c1fd61a2b7b5c746280d16.png
    虽说界面过于清爽,但是功能是实打实的可以!
    b1967e5807b22b3d17f9808c354ca695b0582f48-4e5f5e1f9ea32999fdc77ee2e4a9e5dbd8b2f540.png

    接下来开始抛代码!
    单独jar qiniuJar.tar - 城通网盘

    maven 引入jar包
      <!-- 请求头参数分析包 -->
        <dependency>
          <groupId>eu.bitwalker</groupId>
          <artifactId>UserAgentUtils</artifactId>
          <version>1.20</version>
        </dependency>
    
        <!--七牛云上传图片服务-->
        <dependency>
          <groupId>com.qiniu</groupId>
          <artifactId>sdk</artifactId>
          <version>6.1.0</version>
        </dependency>
    
        <dependency>
          <groupId>com.squareup.okhttp3</groupId>
          <artifactId>okhttp</artifactId>
          <version>3.3.1</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.6.2</version>
          <scope>compile</scope>
        </dependency>
    html 界面
    <html>
    <head>
        <title>七牛云服务示例</title>
    </head>
    <body>
    
    <input type="file" id="upload" name="imagefile" />
    <input type="button" value="上传" onclick="return ajaxFileUploadImage();"/><br>
    <div id="imgurl">
    </div>
    
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.min.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/global.js"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/js/ajaxfileupload.js"></script>
    <script type="text/javascript" language="JavaScript" >
        //图片上传
        function ajaxFileUploadImage() {
    
            $.ajaxFileUpload({
                url: "<%=request.getContextPath()%>/qiniuUpload",//用于文件上传的服务器端请求地址
                secureuri: false,//一般设置为false
                fileElementId: 'upload',//文件上传控件的id属性  <input type="file" id="upload" name="upload" />
                dataType: 'text',//返回值类型 一般设置为json
                success: function (data)  //服务器成功响应处理函数
                {
    //                console.log(data);
    //                $("#imageUrl").html(data);
                    var img = "&lt;img src="+data+"&gt;"
                    var html = "<br><span>"+img+"</span>";
                    $("#imgurl").append(html);
                }
            });
            return false;
        }
    </script>
    
    </body>
    </html>
    
    Controller类
    import com.QiniuCommon.utils.CommonUtil;
    import com.QiniuCommon.utils.ExecuteResult;
    import com.QiniuCommon.utils.QiniuUtil;
    import com.qiniu.api.auth.AuthException;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.multipart.MultipartFile;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    
    /**
     * Created by kzyuan on 2017/6/20.
     */
    @Controller
    @RequestMapping(value = "")
    public class QiniuController {
    
        private static Logger logger = LoggerFactory.getLogger(QiniuController.class);
    
    
        @RequestMapping("qiniuCommon")
        private String qiniuCommon(HttpServletRequest request){
            return "qiniuCommon";
        }
    
    
        /**
         * @param request
         * @param multipartFile
         * @return
         */
        @RequestMapping(value = "/qiniuUpload", method = RequestMethod.POST)
        @ResponseBody
        public String qiniuUpload(HttpServletRequest request, HttpServletResponse response, @RequestParam("imagefile") MultipartFile multipartFile) {
            ExecuteResult<String> executeResult = new ExecuteResult<String>();
    
            QiniuUtil qiniuUtil = new QiniuUtil();
            CommonUtil commonUtil = new CommonUtil();
            try {
                /**
                 * 上传文件扩展名
                 */
                String filenameExtension = multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().lastIndexOf("."), multipartFile.getOriginalFilename().length());
    
                /**
                 * MultipartFile 转 file 类型
                 */
                File file = commonUtil.multipartToFile(multipartFile);
    
                /**
                 * 七牛云文件上传 服务  file文件 以及 文件扩展名
                 */
                executeResult = qiniuUtil.uploadFile(file, filenameExtension);
                if (!executeResult.isSuccess()) {
                    return "失败" + executeResult.getErrorMessages();
                }
    
            } catch (AuthException e) {
                logger.error("AuthException", e);
            }
    
            return executeResult.getResult();
        }
    
    }
    common.properties 配置文件
    #一些公共的配置
    
    #七牛云存储空间名
    bucketName= 
    #七牛云绑定域名
    domain= 
    #七牛云服务配置项 账号的ACCESS_KEY和SECRET_KEY
    ACCESS_KEY= 
    SECRET_KEY= 
    这是综合各种例子,最后总结出的一个比较完全的工具类
    import com.qiniu.api.auth.AuthException;
    import com.qiniu.api.auth.digest.Mac;
    import com.qiniu.api.io.IoApi;
    import com.qiniu.api.io.PutExtra;
    import com.qiniu.api.io.PutRet;
    import com.qiniu.api.rs.GetPolicy;
    import com.qiniu.api.rs.PutPolicy;
    import com.qiniu.api.rs.RSClient;
    import com.qiniu.api.rs.URLUtils;
    import org.json.JSONException;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.UUID;
    
    /**
     * 七牛云 手写工具类
     * Created by kzyuan on 2017/6/20.
     */
    public class QiniuUtil {
    
        private static Logger logger = LoggerFactory.getLogger(QiniuUtil.class);
    
        PropertyUtil propertyUtil = new PropertyUtil();
        private String bucketName = propertyUtil.getProperty("bucketName");
        private String domain = propertyUtil.getProperty("domain");
        private String ACCESS_KEY = propertyUtil.getProperty("ACCESS_KEY");
        private String SECRET_KEY = propertyUtil.getProperty("SECRET_KEY");
    
        //通过文件路径上传文件
        public ExecuteResult<String> uploadFile(String localFile) throws AuthException, JSONException {
            File file = new File(localFile);
            /**
             * 文件后缀名 文件扩展名
             */
            String filenameExtension = localFile.substring(localFile.lastIndexOf("."), localFile.length());
            return uploadFile(file, filenameExtension);
        }
    
        //通过File上传
        public ExecuteResult<String> uploadFile(File file, String filenameExtension) throws AuthException, JSONException {
            ExecuteResult<String> executeResult = new ExecuteResult<String>();
            String uptoken = getUpToken();
    
            // 可选的上传选项,具体说明请参见使用手册。
            PutExtra extra = new PutExtra();
            SimpleDateFormat time = new SimpleDateFormat("yyyy/MM/dd");
            // 上传文件
            PutRet ret = IoApi.putFile(uptoken, time.format(new Date()) + "/" + UUID.randomUUID() + filenameExtension, file.getAbsolutePath(), extra);
    
            if (ret.ok()) {
                executeResult.setSuccessMessage("上传成功!");
                executeResult.setResult(domain+ret.getKey());
            } else {
                executeResult.addErrorMessage("上传失败");
            }
            return executeResult;
        }
    
        /**
         * 从 inputstream 中写入七牛
         *
         * @param key     文件名
         * @param content 要写入的内容
         * @return
         * @throws AuthException
         * @throws JSONException
         */
        public boolean uploadFile(String key, String content) throws AuthException, JSONException {
            // 读取的时候按的二进制,所以这里要同一
            ByteArrayInputStream inputStream = new ByteArrayInputStream(content.getBytes());
    
            String uptoken = getUpToken();
    
            // 可选的上传选项,具体说明请参见使用手册。
            PutExtra extra = new PutExtra();
    
            // 上传文件
            PutRet ret = IoApi.Put(uptoken, key, inputStream, extra);
    
            if (ret.ok()) {
                return true;
            } else {
                return false;
            }
        }
    
        //获得下载地址
        public String getDownloadFileUrl(String filename) throws Exception {
            Mac mac = getMac();
            String baseUrl = URLUtils.makeBaseUrl(domain, filename);
            GetPolicy getPolicy = new GetPolicy();
            String downloadUrl = getPolicy.makeRequest(baseUrl, mac);
            return downloadUrl;
        }
    
        //删除文件
        public void deleteFile(String filename) {
            Mac mac = getMac();
            RSClient client = new RSClient(mac);
            client.delete(domain, filename);
        }
    
        //获取凭证
        private String getUpToken() throws AuthException, JSONException {
            Mac mac = getMac();
            PutPolicy putPolicy = new PutPolicy(bucketName);
            String uptoken = putPolicy.token(mac);
            return uptoken;
        }
    
        private Mac getMac() {
            Mac mac = new Mac(ACCESS_KEY, SECRET_KEY);
            return mac;
        }
    
    }
    这个工具类注释说的很清楚,其实就是将MultipartFile 转换成File的一个过程
    import org.apache.commons.fileupload.disk.DiskFileItem;
    import org.springframework.web.multipart.MultipartFile;
    import org.springframework.web.multipart.commons.CommonsMultipartFile;
    
    import java.io.File;
    import java.io.IOException;
    
    /**
     * 公共工具类
     * Created by kzyuan on 2017/6/19.
     */
    public class CommonUtil {
    
        /**
         * MultipartFile 转换成File
         *
         * @param multfile 原文件类型
         * @return File
         * @throws IOException
         */
        public File multipartToFile(MultipartFile multfile) {
    
            CommonsMultipartFile cf = (CommonsMultipartFile)multfile;
            //这个myfile是MultipartFile的
            DiskFileItem fi = (DiskFileItem) cf.getFileItem();
            File file = fi.getStoreLocation();
            return file;
        }
    
    }
    

    如果以上你觉得还是有点迷糊,那么GitHub代码 是你的首选。

    展开全文
  • web上传图片的方式之一base64编码字符串上传前台传以data:image/jpeg;base64,开头的base64编码的String字符串,后台接收字符串以后先进行base64解码 .decodeBuffer(),转换成二进制编码,然后使用字节输出流...

    web上传图片的方式之一base64编码字符串上传

    前台传以data:image/jpeg;base64,开头的base64编码的String字符串,后台接收字符串以后先进行base64解码 .decodeBuffer(),转换成二进制编码,然后使用字节输出流FileOutputStream()将文件保存到指定目录下。 
    报下面的错误 
    Error parsing HTTP request header 
    Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. 
    要修改tomcat下sever.xml,header的大小 
    <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8000" protocol="HTTP/1.1" redirectPort="8443" maxHttpHeaderSize="10485760"/> 
    将base64编码转成二进制

                        // 通过base64来转化图片
                        imageFile = imageFile.replaceAll("data:image/jpeg;base64,", "");      
                        BASE64Decoder decoder = new BASE64Decoder();
                        // Base64解码      
                        byte[] imageByte = null;
                        try {
                            imageByte = decoder.decodeBuffer(imageFile);      
                            for (int i = 0; i < imageByte.length; ++i) {      
                                if (imageByte[i] < 0) {// 调整异常数据      
                                    imageByte[i] += 256;      
                                }      
                            }      
                        } catch (Exception e) {
                             e.printStackTrace(); 
                        }                   

    将二进制转成file文件

            // 生成文件名
            String files = new SimpleDateFormat("yyyyMMddHHmmssSSS")
                    .format(new Date())
                    + (new Random().nextInt(9000) % (9000 - 1000 + 1) + 1000)
                    + ".png";
            // 生成文件路径
            String filename = Constant.UPLOAD_PATH + files;     
            try {
                // 生成文件         
                File imageFile = new File(filename);
                imageFile.createNewFile();
                   if(!imageFile.exists()){
                       imageFile.createNewFile();
                    }
                    OutputStream imageStream = new FileOutputStream(imageFile);
                    imageStream.write(imageByte);
                    imageStream.flush();
                    imageStream.close();                    
            } catch (Exception e) {         
                e.printStackTrace();
            }
    展开全文
  • 现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons FileUpload、还有Struts1.x... 虽然现在有很多上传组件可以利用,但是了解Web上传文件的原理,对于处理突然出现的问题会有很...
    现在有很多Web程序都有上传功能,实现上传功能的组件或框架也很多,如基于java的Commons
    FileUpload、还有Struts1.x和Struts2中带的上传文件功能(实际上,Struts2在底层也使用了Commons
    FileUpload)。在asp.net中也有相应的上传文件的控件。 
     
      虽然现在有很多上传组件可以利用,但是了解Web上传文件的原理,对于处理突然出现的问题会有很大的
    帮助,下面就来讲一下通过浏览器上传文件的基本原理。在了解了原理之后,就可以非常容易地自制满足自身
    需要的上传组件了。 
     
      众所周知,在客户端代码中需要使用<input type='file' name='file' />来选择要上传的文件,并上传
    ,代码如上: 
     
    <html> 
        <head> 
            <title>upload</title> 
            <meta http-equiv="description" content="this is my page"> 
            <meta http-equiv="content-type" content="text/html;  charset=GB18030"> 
        </head> 
     
        <body> 
            <form action="servlet/UploadFile" method="post" 
                enctype="multipart/form-data"> 
                <input type="file" name="file1" id="file1" /> 
                <input type="file" name="file2" id="file2" /> 
                <input type="submit" value="上传" /> 
            </form> 
        </body> 
    </html> 
     
     
      从上面的代码可以看出,有两个文件选择框(file1和file2),在上传文件时,<form>标签必须加上
    enctype="multipart/form-data",否则浏览器无法将文件内容上传到服务端。下面我们来做个实验。在
    Servlet的doPost方法中编写如下的代码,如果想使用asp.net或其他的语言或技术,也可以很容易实现相应的
    功能。  
        public void doPost(HttpServletRequest request, HttpServletResponse response) 
                throws ServletException, IOException 
        { 
            java.io.InputStream is = request.getInputStream();  
            java.io.FileOutputStream fos = new java.io.FileOutputStream("d:\\out.txt");  
             
            byte[] buffer = new byte[8192];  
            int count = 0;  
            while((count = is.read(buffer)) >0) 
            { 
                fos.write(buffer, 0, count);  
            }         
            fos.close();  
        } 
     
        上面的功能非常简单,只是通过request获得一个InputStream对象,并通过这个对象从客户端获得发送过
    来的字节流(注意,一定要用字节流,因为,上传的文件可能是二进制文件,如图象文件,因此,使用字节流
    会更通用)。并将这些字节流保存在D盘的out.txt文件中。然后我们打开out.txt,文件的内容如图1所示: 
     
     
    图1 
     
        由于out.txt是使用文本形式打开的,并且file1上传的是a.jpg(一个图象文件),因此,显示的是一些乱码。我
    们可以不用管它们。只需要看看这些内容的头部。我们很快就可以找到规律。每一个文件内容的头部都由“---
    --------------------------30514443229777”分隔,然后是这个文件的属性,如下: 
     
    Content-Disposition: form-data;  name="file1";  filename="a.jpg" 
     
    Content-Type: image/jpeg 
     
      其中包含了文件选择框的name属性,还有上传的文件名(filename字段),要注意的,firefox在上传时
    ,这个filename属性值只是文件名,如果使用IE,就是带路径的文件名,如D:"a.jpg。 
     
      接下来的规则就和HTTP的头一样了,以一个空行("r"n)分隔。后面就是文件的具体内容。现在最关键的
    文件的结尾,从图1可以看出,文件的结尾也是“-----------------------------30514443229777”,因此,可以断定,第一个上传的文件(包括文件头)是夹在两个“-----------------------------30514443229777”之
    间的。而“-----------------------------30514443229777”就是multipart/form-data协议的分隔符。但这里
    还有一个最关键的问题。这个分隔符每次上传都不一样,服务端是如何知道每次上传的这个分隔符的呢? 
     
      实际上,这个分隔符是通过HTTP请求头的Content-Type字段获得,可通过下面的代码输出这个字段值: 
     
    System.out.println(request.getHeader("Content-type"));  
     
      输出的内容如下: 
     
    multipart/form-data;  boundary=---------------------------106712230227687 
     
      只要在服务端获得boundary后面的值即可。经过测试,Content-Type中的分隔符号中的“-”比实际上传
    的“-”少两个,不知是怎么回事。不过这没关系,我们可以认为每一个文件块是以""r"n—“结尾的,或是直
    接将从boundary获得的分隔符加两个“—”。而最后结尾的分隔符是“---------------------------
    106712230227687—”,后面多了两个“—”。 
     
      综合上述,也就是说,一个文件块是以“---------------------------106712230227687”开头,以
    “—”结尾,从图2可以看出这一切。 
     
     
    图2  
     
        至于剩下的工作,就是按着上面的规则来分析这些字符流了。分析的方法很多。在这里就不详述了。

    展开全文
  • CG CTF WEB 上传绕过

    千次阅读 2019-07-04 18:43:08
    http://teamxlc.sinaapp.com/web5/21232f297a57a5a743894a0e4a801fc3/index.html 题解: 原理: 00截断是文件后缀名就一个%00字节,可以截断某些函数对文件名的判断,在许多语言函数中,处理字符串的函数中0x00被...
  • python web 上传文件

    千次阅读 2019-07-12 09:41:08
    python上传文件 一、.写html文件(文件名为upfile.html) 上传文件 {% csrf_token %} 说明: 1、表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况...
  • Web上传文件时报错:java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a MultipartResolver configured? 解决方案:检查jar包,完毕无误后在Spring MVC的配置文件中加入<!-- 需要...
  • web上传音频文件如何得到文件时间长度 如题,上传音频文件时,不想让上传者填时间,也不一定能填准,因此想自动判断音频文件的时间长度,如何获取一首歌的时间? ------解决方案-------------------- 从...
  • web上传图片显示报404

    千次阅读 2017-10-21 11:02:31
    springmvc上传图片后显示一直报404错误,路径绝对正确。。。。 在sping-mvc.xml配置文件中少写了一行代码。“”行代码少写了。 有 了 spring会用默认的Servlet来响应静态文件,(DefaultServletHttpRequestHandler...
  • 南邮CTF:WEB 上传绕过

    千次阅读 2018-04-26 19:36:57
    条件: URL:http://teamxlc.sinaapp.com/web5/21232f297a57a5a743894a0e4a801fc3/index.html ...随便上传一个之后,要求我上传php后缀的文件 Array ( [0] =&gt; .png [1] =&gt; png ) ...
  • java+web上传图片保存到数据库

    千次阅读 2019-04-12 11:48:46
    1.上传图片:html代码示例。 <div class="form-group col-sm-12"> <label class="col-sm-2 control-label no-padding-right"><span class="ytRequired"></span>头像:</label> &...
  • web上传图片到七牛云服务器

    千次阅读 2016-10-12 14:11:31
    本文通过java web的使用,把要上传的图片通过浏览器上传到服务器上面. ` 文本仅供参考,可能出现很多不合理;` 1 创建对应的jsp页面: 下面是jsp下面的对应的from表单,上传文件用的那么ImgFiles的属性名称,同样你可以...
  • Web自动化测试实践中,常常会遇到需要通过Web (基本都是依靠form元素) 上传文件到后台的功能。这个功能的特点在于,不仅需要浏览器、document对象的参与,还需要借助于Windows的模式窗口。说到这里,作为我这样的...
  • 通过vertx-web上传文件

    千次阅读 2016-07-05 15:18:29
    LOG.info("上传文件失败,请上传文件"); context.response().end(resJson.toJSONString()); return; } FileUpload file = (FileUpload) context.fileUploads().toArray()[0]; JsonArray ...
  • java web 上传文件的中文名乱码纪要

    千次阅读 2017-07-30 15:40:06
    1 我在服务端接收表单post数据时,已经设置了request和response的charset, ...总是导致上传成功的文件名中文乱码,而且数据库中相应的文件名也是乱码。更诡异的是,我在本机测试怎么都正常, 使用内网
  • 修改domino web 上传附件大小

    千次阅读 2011-01-19 17:27:00
    <br />对应domino 开发的B/S应用,上传大附件或邮件附件时候,会出现网页无法访问的情况。修改domino配置如下:   点击“Internet 协议”-“Domino Web 引擎”标签 修改“最大POST数据”的值...
  • 引言:什么是RFS——RobotFramework+...比如说下载文件的时候,要选择保存文件在什么地方,比如说上传文件的时候,要选择上传哪个文件,这些在Selenium2library下都没有很好的处理办法。但是结合上AutoItLibrary,
  • 配置Tomcat虚拟路径映射进行文件上传下载
  • 已经实现多文件多格式同时上传,如何给上传的每个文件都生成缩略图?方便用户查看!
  • 利用php的文件函数来实现上传 这段代码分为两个文件,一个为upload.html,一个是upload.php upload.html [form] enctype=”multipart/form-data” action=”upload.php” method=”post”> [input type=...
  • 项目中用到文件上传。form提交,如果enctype="multipart/form-data",会发现文件名或者普通表单字段乱码 大家一般解决文件名称乱码比较容易,如以下设置 FileItemFactory factory = new DiskFileItemFactory(); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 440,055
精华内容 176,022
关键字:

web怎么上传