我在客户端上传一图片,现在用file上传控件传了几张图片,但是没有传到server去,因为这写图片目前还在客户端,用户有可能选取其中一些上传到server。现在我通过这个页面跳到另外的页面去了,回来的时候我还想这些都在。怎么办。我的解决方法是:每上传一次,保存图片的路径放到Session中。从另外的页面跳回来的时候,从Session中读取路径显示出来。但现在上传到Server出了问题。我用
system.Drawing.Image imgPicture = System.Drawing.Bitmap.FromFile(sFilePath);
然后以流的形式写到server去,这里因为c#语句在server端执行,这里的sFilePath是客户端路径,所以出错找不到。
本想用file.postfile.saveas的,但是我这里跳转页面回来后,已经没有这东西了,这file上传控件又不能保存其状态。各位大虾帮忙想想。多谢!

解决方案 »

  1.   

    private void 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("files/") + fileName);
    }
    }
    strStatus.Text = strMsg.ToString();
    }
    catch(System.Exception Ex)
    {
    strStatus.Text = Ex.Message;
    }
    }
      

  2.   

    注意<form id="Form1" method="post" runat="server" enctype="multipart/form-data">
    enctype="multipart/form-data" 这个必须加上
      

  3.   

    to amendajing(学习,是个漫长的旅途!) ( ) 
    这个我知道,如果现在你上传了几张,放在页面里面,又跳到另外一个页面去了,然后返回到这个页面,HttpContext.Current.Request.Files不就都掉了吗?
      

  4.   

    我想你应该上传后,获得上传的流保存到SESSION中.
    然后在回来的时候取出这个流可能就可以了,没试过,但是因该没问题哄..
      

  5.   

    Dim MyStream As System.IO.Stream = MyPostedFile.InputStream
    获得刚上传的文件的流,然后
    session("mystream")=MyStream这样试试啦,可能可以.我没测试环境,你先看看!
      

  6.   

    这样代码也到Server端去执行了,而且图片都很大一般1M左右,如果保存到session的话,太大了。
      

  7.   

    我想你应该上传后,获得上传的流保存到SESSION中.
    然后在回来的时候取出这个流可能就可以了,没试过,但是因该没问题哄..
    =================================================================狂晕,我要是服务器非扁你不可
      

  8.   

    net_lover(孟子E章) 
    在哪里有分帧 的技术的例子,指点一二,急!
      

  9.   

    <html>
       <head>
         <title></title>
         <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
         <script language="JavaScript" src="./javascript/Common.js"></script>
         <meta http-equiv="content-Style-Type" content="text/css">
       </head>
       <frameset cols="100%,*" framespacing="0" frameborder="0">
          <frame src="main.aspx" name="frmMain" Scrolling="No" noresize>
          <frame src="fileUpload.aspx" name="frmFileUpload" Scrolling="auto">
       </frameset>
    </html>其实是在一个页面里隐藏着一个frame,在这个页面里放着上传图片。
      

  10.   

    或者使用iframe:<IFRAME id=ctrl_date_PopCalendar style="Z-INDEX:65535; VISIBILITY:hidden; POSITION: absolute" name=ctrl_date_PopCalendar src="../common/cdpc.aspx" frameBorder=0 scrolling=no></IFRAME>
      

  11.   

    想过用iframe,现在是这样的,我在本地添加文件后,需要到另外一个人写的页面中去获取另外的文件,返回后,提交到server.用iframe的话,存在一个返回问题。