关于.net上传文件,防止重复

liqiang8 2008-02-18 03:12:34
上传文件时,用户已经上传了一个本地文件A,怎么防止用户再上传这个本地文件A呢?我采用GUID给文件命的名.希望大家给个思路.
...全文
1154 40 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
sugercgq 2010-07-07
  • 打赏
  • 举报
回复

/// <summary>
/// 判断服务器上是否有重复文件,如有,则改变图片文件名
/// </summary>
/// <param name="cf_path">绝对路径</param>
/// <param name="cf_file_name">文件名</param>
/// <returns>返回文件名</returns>
public static string IsSameFileName(string cf_path, string cf_file_name)
{
string all_path_name = cf_path + cf_file_name;//全名

string tempfileName = string.Empty;
if (System.IO.File.Exists(all_path_name))
{
int counter = 2;
while (System.IO.File.Exists(all_path_name))
{
tempfileName = counter.ToString() + cf_file_name;
all_path_name = cf_path + tempfileName;
counter++;
}
}
else
{
tempfileName = cf_file_name;
}

return tempfileName;
}


效率不好
truenetercobra 2009-04-04
  • 打赏
  • 举报
回复
Pig23 2008-02-20
  • 打赏
  • 举报
回复
@楼上,说的完全正确,但这个一般不对用户开放,后台自己用的,为的是方便。

没必要自己破解自己的系统吧
xuyiazl 2008-02-19
  • 打赏
  • 举报
回复
判断文件的MD5值


重命名根本没用` 只是防止出现重复的名称而已


baizhongwei 2008-02-19
  • 打赏
  • 举报
回复
用md5来验证麻,,,,,最好的方式呢
hertcloud 2008-02-19
  • 打赏
  • 举报
回复
http://www.newasp.net/tech/net/12813.html
zjysky 2008-02-19
  • 打赏
  • 举报
回复
把你上传的文件的完全路径存储在你的页面,然后再上传的时候就比较一下啊

至于你说的应该不好实现
liqiang8 2008-02-19
  • 打赏
  • 举报
回复
to sunshine_anycall,怎么hash一把,能够详细些吗?或给出点代码.我对hash算法不懂,哪位知道的也可以告诉我.谢谢!
hertcloud 2008-02-19
  • 打赏
  • 举报
回复
取 文件 md5 值 比较
但是一样不能 避免 同样文件 的不同格式
比如 rar压缩 和 zip压缩 同一文件上传
viena 2008-02-19
  • 打赏
  • 举报
回复
问一下,这种判断用意何在?
似乎没有实际意义!
把文件移动到不同的位置或者重命名一下
就是不同的文件了?
用PhotoShop修改下,点个点上去
或者把文件中二进制的一个0改为1
用md5检验就会不一样~
viena 2008-02-19
  • 打赏
  • 举报
回复
三个字:不可能
Pig23 2008-02-19
  • 打赏
  • 举报
回复
这是我老早写的一个判断类
public bool FileExist(string FileName)
{
Conn = (OleDbConnection)CreateConn();
StrSql = "Select Count(*) As Total From upload_file Where file_name=@file_name";
Cmd = (OleDbCommand)CreateCmd(StrSql, Conn);
Cmd.Parameters.Add("@file_name", OleDbType.VarWChar, 30).Value = FileName;
if (FileExist(Conn, Cmd))
{
return true;
}
else
{
return false;
}
}
然后
if(FileExist类返回false)
提示重复
else
上传
q卡卡p 2008-02-19
  • 打赏
  • 举报
回复
如果文件名不改,可以直接比较文件名,要是改了的话,那就只能比较文件内容了。
cxzhq2002 2008-02-19
  • 打赏
  • 举报
回复
记录下客户端的路径,如果路径一样,
服务端文件的大小一样,不传
jilter2009 2008-02-19
  • 打赏
  • 举报
回复
我也想找一个完美的方法,但还没有找到
ymcano11 2008-02-19
  • 打赏
  • 举报
回复
命名时用名字+系统时间不行吗???
Lancker 2008-02-18
  • 打赏
  • 举报
回复
楼上和我想到一起来了
sunshine_anycall 2008-02-18
  • 打赏
  • 举报
回复
想通过文件名的比较来达到防止重复的目的简直就是缘木求鱼!
整个文件都比较的话也不现实。
那么,是不是可以做一个hash的算法呢,服务器每接受一个文件hash一把。
在下次接受的时候和已有的hash过的标志来比较这样不是更好?
yang_kun 2008-02-18
  • 打赏
  • 举报
回复
关注~~~~
hubeihonghu 2008-02-18
  • 打赏
  • 举报
回复
xxxw2
加载更多回复(20)

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧