CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

上传的文件如何改名?

楼主yanch1985(罐头)2006-03-23 15:34:27 在 .NET技术 / ASP.NET 提问

用HTML下FILE控件上传图片文件,文件名同时输入数据库,作为自定义头象.   但上传目录是同一个,文件名重复的话本来有的那个文件便会被新的同名文件覆盖.怎么样在上传的同时把文件名修改成一个不会重复的? 问题点数:50、回复次数:10Top

1 楼anantnt203120(阿南)回复于 2006-03-23 15:43:44 得分 5

用.net的System.IO.File类Top

2 楼yanch1985(罐头)回复于 2006-03-23 15:52:56 得分 0

能详细些吗?   我还是个学生,新手.谢谢Top

3 楼zhangxiaopin(zxp)回复于 2006-03-23 15:54:45 得分 5

///   <summary>  
  ///   上传达室文件  
  ///   </summary>  
  ///   <param   name="HtmlFile">打开文件对话框</param>  
  ///   <param   name="UpFilePath">上传文件保存地址</param>  
  public   static   void   UploadFiles(HtmlInputFile   HtmlFile,string   UpFilePath)  
  {  
   
  if(HtmlFile.PostedFile.FileName=="")   return;  
   
  string   FileName=HtmlFile.PostedFile.FileName;  
   
  //***获取获取名  
  string   ExitenFile=AppGlobal.GetExiten(FileName);  
   
  //***组成新的文件名  
  string   NewFileName=AppGlobal.ReadName(ExitenFile);  
   
  try  
  {  
  //****保存文件  
  HtmlFile.PostedFile.SaveAs(UpFilePath+"\\"+NewFileName);  
  }  
  catch  
  {  
   
  }  
   
  }Top

4 楼pangyong0221(Forget)回复于 2006-03-23 15:55:22 得分 0

SaveASTop

5 楼zhtflhs(哼哼)回复于 2006-03-23 15:55:25 得分 0

<%@   Page   language="c#"   Codebehind="UpLoad.aspx.cs"   AutoEventWireup="false"   Inherits="WebPortal.Upload"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
      <HEAD>  
          <title>多文件上传</title>  
          <script   language="JavaScript">  
          function   addFile()  
          {  
          var   str   =   '<INPUT   type="file"   size="50"   NAME="File">'  
          document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str)  
          }  
          </script>  
      </HEAD>  
      <body>  
          <form   id="form1"   method="post"   runat="server"   enctype="multipart/form-data">  
              <div   align="center">  
                  <h3>多文件上传</h3>  
                  <P   id="MyFile"><INPUT   type="file"   size="50"   NAME="File"></P>  
                  <P>  
                      <input   type="button"   value="增加(Add)"   onclick="addFile()">  
                      <input   onclick="this.form.reset()"   type="button"   value="重置(ReSet)">  
                      <asp:Button   Runat="server"   Text="开始上传"   ID="UploadButton"></asp:Button>  
                  </P>  
                  <P>  
                  <asp:Label   id="strStatus"   runat="server"   Font-Names="宋体"   Font-Bold="True"   Font-Size="9pt"    
                      Width="500px"   BorderStyle="None"   BorderColor="White"></asp:Label>  
                  </P>    
              </div>  
          </form>  
      </body>  
  </HTML>  
   
  Top

6 楼artak(甜葡萄)回复于 2006-03-23 15:56:43 得分 10

用时间做文件名   如   200503230214.gif  
  如   string   name=DataTime.Now.ToString("yyyyMMddddmmss")+".gif"Top

7 楼dingsongtao(一翁傾塵『舍得』)回复于 2006-03-23 15:56:55 得分 20

UpFile.PostedFile.SaveAs(Path);  
  Path:完整的保存路径,包括文件名  
  如:  
  UpFile.PostedFile.SaveAs(@"C:\test\1.txt");  
  改名字就换个你要的文件名就是了!Top

8 楼zhtflhs(哼哼)回复于 2006-03-23 15:57:21 得分 0

using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
   
  namespace   WebPortal  
  {  
      ///   <summary>  
      ///   UpLoad   的摘要说明。  
      ///   实现多文件上传  
      ///   </summary>  
      public   class   Upload   :   System.Web.UI.Page  
      {  
          protected   System.Web.UI.WebControls.Button   UploadButton;  
          protected   System.Web.UI.WebControls.Label   strStatus;  
   
          private   void   Page_Load(object   sender,   System.EventArgs   e)  
          {  
              ///   在此处放置用户代码以初始化页面  
              if   (this.IsPostBack)   this.SaveImages();  
          }  
   
          private   Boolean   SaveImages()  
          {  
              ///'遍历File表单元素  
              HttpFileCollection   files     =   HttpContext.Current.Request.Files;  
   
              ///   '状态信息  
              System.Text.StringBuilder   strMsg   =   new   System.Text.StringBuilder();  
              strMsg.Append("上传的文件分别是:<hr   color=red>");  
              try  
              {  
                  for(int   iFile   =   0;   iFile   <   files.Count;   iFile++)  
                  {  
                      ///'检查文件扩展名字  
                      HttpPostedFile   postedFile   =   files[iFile];  
                      string   fileName,   fileExtension;  
                      fileName   =   System.IO.Path.GetFileName(postedFile.FileName);  
                      if   (fileName   !=   "")  
                      {  
                          fileExtension   =   System.IO.Path.GetExtension(fileName);  
                          strMsg.Append("上传的文件类型:"   +   postedFile.ContentType.ToString()   +   "<br>");  
                          strMsg.Append("客户端文件地址:"   +   postedFile.FileName   +   "<br>");  
                          strMsg.Append("上传文件的文件名:"   +   fileName   +   "<br>");  
                          strMsg.Append("上传文件的扩展名:"   +   fileExtension   +   "<br><hr>");  
                          ///'可根据扩展名字的不同保存到不同的文件夹  
                          ///注意:可能要修改你的文件夹的匿名写入权限。  
                          postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("images/")   +   fileName);//你把fileName修改一下就可以了,取一下系统时间或其他的方式  
                      }  
                  }  
                  strStatus.Text   =   strMsg.ToString();  
                  return   true;  
              }  
              catch(System.Exception   Ex)  
              {  
                  strStatus.Text   =   Ex.Message;  
                  return   false;  
              }  
          }  
      #region   Web   窗体设计器生成的代码  
      override   protected   void   OnInit(EventArgs   e)  
      {  
      //  
      //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
      //  
      InitializeComponent();  
      base.OnInit(e);  
      }  
   
      ///   <summary>  
      ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
      ///   此方法的内容。  
      ///   </summary>  
      private   void   InitializeComponent()  
      {          
          this.ID   =   "Upload";  
          this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
      }  
      #endregion  
      }  
  }  
   
  孟子的例子  
  http://dotnet.aspx.cc/ShowDetail.aspx?id=58EA3515-36F2-4FD9-AC89-EAF49F59816CTop

9 楼califord(远方)回复于 2006-03-23 15:59:47 得分 10

文件上传(不改名的你会吧),那就是一个改名的过程你不会了哟?  
  建议你改成当然系统的时间,这样重复的可能性很小  
   
  以下方法你看一下  
  string   strDate   =   DateTime.Now.ToStrint();//取当前时间  
  string   str   =   strDate.Replace("/","").Replace(":","").Replace("   ","");   //过滤当前时间里的特殊字符,如   -     /     .Top

10 楼yanch1985(罐头)回复于 2006-03-23 16:07:51 得分 0

恩,明白了,谢谢.   不过,如果浏览量大呢?   比如在同一秒中内有2个用户上传了文件.那文件名会不会重复?虽然这现象应该很少发生,呵呵.Top

相关问题

  • 用JspSmartUpload组建件上传文件后如何改名字?
  • 如何给idhttp上传的文件改名?
  • 如何给文件夹改名
  • 如何给任意文件改名?
  • 请问如何给文件夹改名?
  • 如何用jsp实现对文件夹及文件改名?
  • 简单问题:如何给文件和文件夹改名?
  • 如何给文件夹改名?(文件夹下面有文件,而且文件不能改动)
  • 如何给一个包含文件的目录改名?
  • 简单问题,如何将文件改名?

关键词

得分解答快速导航

  • 帖主:yanch1985
  • anantnt203120
  • zhangxiaopin
  • artak
  • dingsongtao
  • califord

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo