CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

^-----/__\----^100分求解:多文件上传,保存文件相同问题

楼主gglovecs(lovecsdn)2005-06-02 16:40:33 在 .NET技术 / ASP.NET 提问

做批量文件上传时,如我同时上传4个文件:  
  1.gif  
  2.gif  
  3.gif  
  4.gif  
  结果保存为:  
  1.gif  
  4.gif  
  4.gif  
  4.gif  
  也就是中间的2、3都没保存,为什么,怀疑与缓存有关,我又做了清除缓存的操作:  
  <META   http-equiv="Pragma"   content="no-cache">  
  结果又变成了全是4.gif  
  清除缓存用了很多方法,结果都差不多。要么保存首尾两张,要么全部是最后一张。  
   
  主要代码如下:  
  HttpFileCollection   files   =Request.Files;  
   
  for(iFile   =   0;iFile<=files.Count-1;iFile++)  
  {  
   HttpPostedFile   postedFile   =   files[iFile];  
   fileName   =Path.GetFileName(postedFile.FileName);  
   Response.Write(fileName);  
   //省去一些没用代码  
   upimage.Save(newpath,GetImageType(postedFile.ContentType));//保存原始图片  
   thumimg.Save(thumpath,GetImageType(postedFile.ContentType));   //保存缩略图  
   
   //写数据库缩略图文件名  
   insert   into   tbimg(imgname)values(thumimg);//把缩略图文件名写进数据库  
   
  }  
   
  我Response.write出来的文件名还是1.gif,2.gif,3.gif,4.gif  
  数据库里保存的全是4.gif  
  到底为什么,搞了一天也没结果。  
  但如果我在Debug状态运行,则一切正常。  
   
  ===========================================================  
  哪位兄弟帮看看,不胜感激!!!!!!!!!!!!!!!  
  问题点数:100、回复次数:12Top

1 楼xiaopai20(小排——流浪狗)回复于 2005-06-02 16:52:02 得分 10

你改一下文件名,可以改成当然系统时间和一些特定的信息Top

2 楼gglovecs(lovecsdn)回复于 2005-06-02 16:52:16 得分 0

晕死了,一整 天都卡在这,不能动了,我要撞墙.......................  
   
  撞墙.......................撞墙.......................  
  撞墙.......................撞墙.......................  
  撞墙.......................撞墙.......................Top

3 楼gglovecs(lovecsdn)回复于 2005-06-02 16:54:25 得分 0

文件名是改过的,不然传上去会同名的  
   
  文件名格式是时分秒加微秒.Top

4 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-06-02 16:58:43 得分 15

http://dotnet.aspx.cc/ShowDetail.aspx?id=58EA3515-36F2-4FD9-AC89-EAF49F59816C  
   
  参考看看。Top

5 楼liuqm(blue)回复于 2005-06-02 17:03:39 得分 15

<%@   Page   language="c#"   Codebehind="upMoreFile.aspx.cs"   AutoEventWireup="false"   Inherits="CommonFunction.upMoreFile"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
  <HEAD>  
  <title>upMoreFile</title>  
  <meta   content="Microsoft   Visual   Studio   7.0"   name="GENERATOR">  
  <meta   content="C#"   name="CODE_LANGUAGE">  
  <meta   content="JavaScript"   name="vs_defaultClientScript">  
  <meta   content="http://schemas.microsoft.com/intellisense/ie5"   name="vs_targetSchema">  
  <script   language="JavaScript">  
          function   addFileControl()  
          {  
          var   str   =   '<INPUT   type="file"   NAME="File">'  
          document.getElementById('FileCollection').insertAdjacentHTML("beforeEnd",str)  
          }  
  </script>  
  </HEAD>  
  <body   MS_POSITIONING="GridLayout">  
  <form   id="upMoreFile"   method="post"   encType="multipart/form-data"   runat="server">  
  <asp:label   id="Title"   Runat="server"></asp:label>  
  <P   id="FileCollection"><INPUT   type="file"   name="File">  
  </P>  
  <P><input   onclick="addFileControl()"   type="button"   value="增加(File)">  
  <asp:button   id="Upload"   Runat="server"   Text="上传"   Width="56px"></asp:button><input   style="WIDTH:   56px;   HEIGHT:   24px"   onclick="this.form.reset()"   type="button"   value="重置">  
  </P>  
  <P   align="center"><asp:label   id="strStatus"   runat="server"   BorderColor="White"   BorderStyle="None"   Width="500px"  
  Font-Size="9pt"   Font-Bold="True"   Font-Names="宋体"></asp:label></P>  
  </form>  
  </body>  
  </HTML>  
  Top

6 楼liuqm(blue)回复于 2005-06-02 17:04:11 得分 15

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   CommonFunction  
  {  
  ///   <summary>  
  ///   upMoreFile   的摘要说明。  
  ///   </summary>  
  public   class   upMoreFile   :   System.Web.UI.Page  
  {  
  protected   System.Web.UI.WebControls.Button   Upload;  
  protected   System.Web.UI.WebControls.Label   Title;  
  protected   System.Web.UI.WebControls.Label   strStatus;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  Title.Text   =   "<h3>多文件上传</h3>";  
  Upload.Text   =   "开始上传";  
  }  
   
  #region   Web   Form   Designer   generated   code  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.Upload.Click   +=   new   System.EventHandler(this.Upload_Click);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
  }  
  #endregion  
   
  private   void   Upload_Click(object   sender,   System.EventArgs   e)  
  {  
  upMorefile();  
  }  
   
  private   bool   upMorefile()  
  {  
  //遍历File表单元素  
  System.Web.HttpFileCollection   files   =   System.Web.HttpContext.Current.Request.Files;  
  //状态信息  
  System.Text.StringBuilder   strMsg   =   new   System.Text.StringBuilder("上传的文件信息分别为:<hr   color=red>");  
  int   fileCount;  
  int   filecount   =   files.Count;  
  try  
  {  
  for(fileCount   =   0;fileCount<files.Count;fileCount++)  
  {  
  //定义访问客户端上传文件的对象  
  System.Web.HttpPostedFile   postedFile   =   files[fileCount];  
  string   fileName,   fileExtension;  
  //取得上传得文件名  
  fileName   =   System.IO.Path.GetFileName(postedFile.FileName);  
  if(fileName   !=   String.Empty)  
  {  
  //取得文件的扩展名  
  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   color=red>");  
  //保存到指定的文件夹  
  postedFile.SaveAs(Server.MapPath("upedFile/")   +   fileName);  
  }  
  }  
  strStatus.Text   =   strMsg.ToString();  
  return   true;  
  }  
  catch(System.Exception   error)  
  {  
  strStatus.Text   =   error.Message;  
  return   false;  
   
  }  
  }  
  }  
  }  
  Top

7 楼liuqm(blue)回复于 2005-06-02 17:06:50 得分 0

试试吧!!  
   
  还好用得很!  
   
  看看别人怎么写的!Top

8 楼qingyun1020(星期零)回复于 2005-06-02 17:07:58 得分 10

把你这一段的全部代码贴出来看看,也有可能是变量的使用不好。文件名因该是先赋给个变量再加入到sql   语句中的吧,仔细看看那个地方。Top

9 楼qingyun1020(星期零)回复于 2005-06-02 17:11:44 得分 15

http://dotnet.aspx.cc/ShowDetail.aspx?id=58EA3515-36F2-4FD9-AC89-EAF49F59816C  
   
  参考孟子的这个看看就很好Top

10 楼ybh2002(冰鸿)回复于 2005-06-02 22:00:26 得分 15

debug正常,那就怪了,好好检查下程序吧,越是不起眼的地方越可能出错,多注释,一条条执行看看。再不行就换台机子试试。  
   
   
  Top

11 楼spfft007(自由鸟)回复于 2005-06-02 22:58:33 得分 5

markTop

12 楼gglovecs(lovecsdn)回复于 2005-06-03 09:01:01 得分 0

谢谢大家,真是晕头了,其实问题说的就像 回复人:   ybh2002(冰鸿)   (   )   信誉:100   一样,很不起眼的一处出问题了,今早来一看就看出来了,昨天真是写晕头了,还是非常感谢大家的帮助,结贴了。Top

相关问题

  • 文件上传不能保存,跪求解决方法!
  • 现金求解asp.net问题:标签内容的消除、文件保存、ReportViewer控件身份验证
  • select相同值,求解!!!急
  • 保存文件
  • 保存文件
  • 备注字段不能保存,求解
  • 备注字段不能保存,求解
  • 高手求解:怎样在XML中保存文件名完整路径.以下代码应该可以的为何总不执行不正确呢?
  • (高分求解)用JXL生成的excel文件在浏览器中打开,关闭的时候总是提示保存,怎样去掉这个提示
  • 100分求解,在WINFORM中打开一个WORD文件,然后保存,并且上传到服务器中,有什么好的实现方法?

关键词

  • 文件

得分解答快速导航

  • 帖主:gglovecs
  • xiaopai20
  • hackate
  • liuqm
  • liuqm
  • qingyun1020
  • qingyun1020
  • ybh2002
  • spfft007

相关链接

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

广告也精彩

反馈

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