如何解决上传文件时文件内容相同

现在有这样一个需求:要求在上传文件时,凡是上传的文件,只要内容相同就只在服务器保存一份。

  如何比较文件内容?如果当时思维受限,很难想到来比较文件内容的办法。

解决办法:

  文件上传,肯定少不了用流来读文件,文件内容相同的根源就是:流读出来的字节码相同。这就想到了解决的办法,可是问题又来了。怎么比较字节码?想想那么长的字节码,如果用字符串的equals方法来比较,这不是一个好的解决办法。经过一番思考,我决定把流读出来的字节码进行MD5加密,用加密后的字符串来当作文件的文件名,然后在进行文件的上传(文件内容相同,自然文件名也就相同咯,然后就自动覆盖了),这样就解决了该需求。

  

时间: 2024-10-03 16:14:07

如何解决上传文件时文件内容相同的相关文章

java实现动态上传多个文件并解决文件重名问题(转)

本文分为两大方面进行讲解: 一.java实现动态上传多个文件 二.解决文件重命名问题java 供大家参考,具体内容如下 1.动态上传多个文件 <script> <form name="xx" action="<c:url value='/Up3Servlet'/>" method="post" enctype="multipart/form-data">   <table id=&qu

动态上传多个文件和解决文件的重名的问题(61)

动态上传多个文件 <form name="xx" action="<c:url value='/Up3Servlet'/>" method="post" enctype="multipart/form-data"> <table id="tb" border="1"> <tr> <td> File: </td> &l

php+apache 解决上传文件过大问题

php+apache 解决上传文件过大问题 博客分类: php PHPApache 用php+apache上传文件的时候,由于文件过大,容易导致上传失败,解决办法: 修改php.ini中: upload_max_filesize  2m  即允许上传文件大小的最大值.默认为2M ,大小可以根据你                              的需要进行修改 post_max_size  20m  指通过表单POST给PHP的所能接收的最大值,包括表单里的所有             

解决ASP.NET中的FileUpload 不能上传大于4M文件的限制

ASP.NET的缺省设定只允许上传4M的文件,这是出于对网站安全性的考虑,为了防止网站受到Denial of Service attacks的攻击. 虽说是出于对网站安全性的考虑,但是程序却捕捉不到文件超过4M的异常.调试程序时即使设置了文件超过4M就退出,也只能看着网页超时,无能为力.调了好一阵,上网一搜,这个居然是微软设的陷阱!! 解决方案: 在web.config中的<system.web></system.web>内加入如下代码: <httpRuntime execu

通过上传的APK文件,解析APK文件内容,获取应用权限包名等

通过上传的APK文件,解析APK文件内容,获取应用权限包名等 1工具导入: 下载aapt.exe反编译执行程序,放入Java工程资源文件夹下(具体路径自己可定义) 2编写ApkUtil类,获取apk文件信息 public class ApkUtil { public static final String VERSION_CODE = "versionCode"; public static final String VERSION_NAME = "versionName&q

java的JFileChooser上传一个Excel文件并读取该文件的内容

一.描述 无论是jsp中还是swing中的上传文件组件都可能上传一个Excel文件并且按行读取文件的记录,读取记录后可以提供数据的显示功能,也可以构造sql语句进行数据库中数据的查询等. 例如我们上传一份用户名单,其中包括用户姓名,性别和身份证号,我们将用户真实姓名加上身份证后四位作为用户账号查询数据库中是否有该用户信息,上传的表格如下: 二.所需工具 java要调用Excel并且读取Excel文件中的数据,就必须使用jxl.jar札包,所以先获取该札包然后引入到java项目中. 该札包的免费下

oracle EBS上传和下载文件(转)

最近一直在做一个工作流的项目,最终用户要求在发送消息的时候可以附带附件,这个又是给我的一个难题.在网上查了一下ORACLE上传资料,找到了黄建华前辈写的<Oracle EBS Forms开发指南(中级)>的资料有关于附件开发的内容,真的是不得不佩服黄建华前辈的厉害啊. 言归正传,按照<Oracle EBS Forms开发指南(中级)>中的介绍就可以轻松的实现客户化FORM添加附件的功能,好现在把上传的功能实现了,要如何实现已上传的文件在最终用户想查看该附件的时候现在下来呢?这个又是

ASP.NET Core WEB API 使用element-ui文件上传组件el-upload执行手动文件文件,并在文件上传后清空文件

前言: 从开始学习Vue到使用element-ui-admin已经有将近快两年的时间了,在之前的开发中使用element-ui上传组件el-upload都是直接使用文件选取后立即选择上传,今天刚好做了一个和之前类似的文件选择上传的需求,不过这次是需要手动点击按钮把文件上传到服务器中进行数据导入,而且最多只能够选择一个文件进行上传,上传成功后需要对file-list中的文件列表数据进行清空操作,在这里服务端使用的是ASP.NET Core WEB API来进行文件流数据接收和保存. 一.简单概述e

【转】每天一个linux命令(26):用SecureCRT来上传和下载文件

原文网址:http://www.cnblogs.com/peida/archive/2012/11/28/2793181.html 用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. 文件传输协议: 文件传输是数据交换的主要形式.在进行文件传输时,为使文件能被正确识别和传送,我们需要在两台计算机之间建立统一的传输协议.这个协议包括了文件的识别.传送的

支持多文件上传的jQuery文件上传插件Uploadify

支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Flash,主要特性:支持多文件上传.HTML5版本可拖拽上传.实时上传进度条显示.强大的参数定制功能,如文件大小.文件类型.按钮图片定义.上传文件脚本等. Flash版本使用方法: 1.加载JS和CSS ? 1 2 3 <script src="jquery/1.7.1/jquery.min.js