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"/>上传图片的例子。调试成功马上送分!
[解决办法]
[解决办法]
<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>
[解决办法]
//返回附件 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也可以。