首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

100分,求不用<input type="file"/>上传图片方法,该怎么处理

2012-05-06 
100分,求不用input typefile/上传图片方法如题求一个不用input typefile/上传图片方法,我试过各

100分,求不用<input type="file"/>上传图片方法
如题求一个不用<input type="file"/>上传图片方法,我试过各种各样的方法,有的能上传但图片不显示,有的根本上传不了。请大家帮忙。
比如

string newFile = baseLocation + newname + filesUploaded + strType; //上传的文件路径和文件名
例:newFile = E:\\pic\\200907301212323.jpg

  StreamWriter FSO;
  //查看文件是否存在

  if (File.Exists(newFile))
  {
  FSO = File.AppendText(newFile);
  }
  else
  {
  FSO = File.CreateText(newFile);
  }
上面这个上传结果是有图片存在,但是图片没有任何内容,也就是一张空图片。

请大家帮帮忙给解决一下,或者个写个不用<input type="file"/>上传图片的例子。调试成功马上送分!

[解决办法]

[解决办法]

HTML code
<input type="file" id="File1" name="File1" runat="server" style="width: 587px; height: 20px;"  class="TextLine"   />                                        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="File1"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                     <asp:Label ID="Label3" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label>                        <br />                    <input type="file" runat="server" id="File2" style="width: 587px; height: 20px;" class="TextLine"   /> <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="File2"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                     <asp:Label ID="Label6" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label>                        <br />                    <input type="file" runat="server" id="File3" style="width: 587px; height: 20px;"  class="TextLine"  /> <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ControlToValidate="File3"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                     <asp:Label ID="Label7" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label>                        <br />                    <input type="file" runat="server" id="File4" style="width: 587px; height: 20px;"  class="TextLine"  /> <asp:RegularExpressionValidator ID="RegularExpressionValidator4" runat="server" ControlToValidate="File4"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                     <asp:Label ID="Label8" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label>                        <br />                    <input type="file" runat="server" id="File5" style="width: 587px; height: 20px;"   class="TextLine" /> <asp:RegularExpressionValidator ID="RegularExpressionValidator5" runat="server" ControlToValidate="File5"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                     <asp:Label ID="Label9" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label>                     <br />                    <input type="file" runat="server" id="File6" style="width: 587px; height: 20px;" class="TextLine"  /> <asp:RegularExpressionValidator ID="RegularExpressionValidator6" runat="server" ControlToValidate="File6"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                     <asp:Label ID="Label10" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label>                        <br />                    <input type="file" runat="server" id="File7" style="width: 587px; height: 20px;" class="TextLine"  /> <asp:RegularExpressionValidator ID="RegularExpressionValidator7" runat="server" ControlToValidate="File7"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                    <asp:Label ID="Label11" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label>                        <br />                    <input type="file" runat="server" id="File8" style="width: 587px; height: 20px;"  class="TextLine" /> <asp:RegularExpressionValidator ID="RegularExpressionValidator8" runat="server" ControlToValidate="File8"                        ErrorMessage="只能上传图片格式" ValidationExpression="^.*?\.(jpg|jpeg|bmp|gif|JPG|GIF|png|PNG|BMP|ico|)$"                        ValidationGroup="a"></asp:RegularExpressionValidator>                     <asp:Label ID="Label12" runat="server" Text="(建议图片大小为:296px*200px)" ForeColor="#404040"></asp:Label> 


[解决办法]

C# code
 //返回附件    private void SaveImg()    {       HttpFileCollection files = Request.Files;        for (int i = 0; i < files.Count; i++)        {            if (files[i].ContentLength > 0)            {             string fileName = System.IO.Path.GetFileName(files[i].FileName); //文件名                int fileSize = files[i].ContentLength;                          //文件大小                string fileType = files[i].ContentType;                          //文件类型                byte[] content = new byte[files[i].ContentLength];              //                files[i].InputStream.Read(cont, 0, files[i].ContentLength);   ////////为二进制流   在数据库里以image类型展示            }        }        return atts;    }
[解决办法]
byte[] bs = null;
using (FileStream fs = new FileStream(老文件名,FileMode.Open)){
bs = new byte[fs.Length];
fs.Read(bs, 0, bs.Length);
}

using (FileStream fst = new FileStream(要覆盖的文件名,FileMode.Create)){
fst.Write(bs, 0, bs.Length);
}
[解决办法]
不可行,因为必须用<input type="file" />才能找到你这个文件,现有的任何基于浏览器并且不用插件的文件上传系统都必须用到<input type="file" />. 除非你自己开发一款插件,可以根据路径自动找到本地的文件并上传。或者像楼上说的,用Flash,Sliverlight也可以。

热点排行
Bad Request.