1.假如你给用户的上传个数是静态的(也就是可以在前台加入几个input="file"),这种方法比较的简单.在后台只要对每个上传的图片进行保存就可以了(每个input都有id号,直接可以得到)
2.你可以让用户选定有几个图片要上传(DropDownList选择),对这个下拉框做一个事件,选择的时候出现DataGrid其中DataGrid动态的绑定input控件,提脚的时候,进行处理!
这只是思路,具体实现方式要靠你自己了~```
2.你可以让用户选定有几个图片要上传(DropDownList选择),对这个下拉框做一个事件,选择的时候出现DataGrid其中DataGrid动态的绑定input控件,提脚的时候,进行处理!
这只是思路,具体实现方式要靠你自己了~```
解决方案 »
- 求大侠 看下IIS 问题
- CallBack错在哪里?为什么不能显示。
- 一个奇怪的问题!请大虾指点迷津
- 关于获取datagrid中动态创建的列的值????
- 谁有 中文扫描的电子书 ASP.NET揭秘(第二版)能给小弟发一份么?感激
- 请问这个错误是怎么一回事???
- 图片 从DataSet转移后 不能正常显示得问题。
- 如果开发的程序布署到多台服务器,那个用lock锁类型还有效控并发吗?
- vs2005的小问题
- 为什么Request.ServerVariables key中没有["HTTP_X_FORWARDED_FOR"]
- ASPNET能调用WORD,但不能显示保存在SQLSERVER中的WORD文件,能解决者50分送上!!!
- 求助!高分求助!
上传全部文件
这个比较的困难,你有没有实现过,如果有的话把代码给大伙研究一下!
我也很需要~``
重新写一下
for(int i=1;i<=ImageNum;i++)//根据ImageNum上传文件个数参数显示多个文件上传控件
{
HtmlInputFile UpLoadFile = new HtmlInputFile();
UpLoadFile.Name="upload"+i.ToString();
UpLoadFile.ID="upload"+i.ToString();
UploadFile.Controls.Add(UpLoadFile);//加入文件上传控件
UploadFile.Controls.Add(new LiteralControl("<br>"));
}然后通过
//上传图片、flash多媒体文件
protected void UploadImageFile(Object sender,System.EventArgs e)
{
//循环上传文件
HttpFileCollection _files = HttpContext.Current.Request.Files;
StringBuilder _message = new StringBuilder("文件上传:<br>");
try
{
for ( int _iFile=0; _iFile<=_files.Count-1;_iFile ++ )
{
HttpPostedFile _postedFile = _files[_iFile];
string _fileName,_fileExtension;
_fileName = Path.GetFileName(_postedFile.FileName);
_fileExtension = Path.GetExtension(_fileName);
int _iFile1=_iFile+1;//文件顺序标识
//文件名存在(无后缀名),删除该文件,以免显示冲突
FileInfo file1 = new FileInfo(Server.MapPath("a_pic/" + UploadId+"_"+_iFile1.ToString()+".gif"));
if(file1.Exists)
{
file1.Delete();
}
FileInfo file2 = new FileInfo(Server.MapPath("a_pic/" + UploadId+"_"+_iFile1.ToString()+".jpg"));
if(file2.Exists)
{
file2.Delete();
}
FileInfo file3 = new FileInfo(Server.MapPath("a_pic/" + UploadId+"_"+_iFile1.ToString()+".swf"));
if(file3.Exists)
{
file3.Delete();
}
if (_fileExtension==".gif"||_fileExtension==".GIF"||_fileExtension==".jpg" ||_fileExtension==".JPG"||_fileExtension==".swf"||_fileExtension==".SWF" )
{
//保存文件
_postedFile.SaveAs(HttpContext.Current.Request.MapPath("a_pic/")+UploadId+"_"+_iFile1.ToString()+_fileExtension);
_message.Append(_fileName + "已上传至服务器,当前文件名为:"+UploadId+"_"+_iFile1.ToString()+_fileExtension+"<BR>");
}
else if(_fileExtension=="")
continue;
else
{
_message.Append(_fileName + " <font color=\"red\">失败,文件格式不对,只允许gif/jpg/swf格式!</font> <BR>");
}
}
Label LabelInfo=new Label();
LabelInfo.Text = _message.ToString();
UploadFile.Controls.Add(new LiteralControl("<br>"));
UploadFile.Controls.Add(LabelInfo);
UploadFile.Visible=true;
UploadBtn.Visible=false;
}
catch ( System.Exception Ex )
{
Label LabelInfo=new Label();
LabelInfo.Text = Ex.Message ;
UploadFile.Controls.Add(new LiteralControl("<br>"));
UploadFile.Controls.Add(LabelInfo);
UploadFile.Visible=true;
UploadBtn.Visible=false;
}
}
byte[] bytes = new byte[count];
string imgFilename,imgUrl,imgPath,imglocalpath,saveLocation;
Stream myStream;
imglocalpath = Path.GetDirectoryName(upLoadFile.PostedFile.FileName.ToLower());
DirectoryInfo dir= new DirectoryInfo(imglocalpath);
FileStream fs;
foreach(FileInfo f in dir.GetFiles())
{
imgFilename = f.Name;
myStream = File.OpenRead(imglocalpath+"\\"+imgFilename);
imgPath = Server.MapPath(getmypath());
if( !Directory.Exists(imgPath)) Directory.CreateDirectory(imgPath);
saveLocation = imgPath + "\\" + imgFilename;
fs = new FileStream(saveLocation,FileMode.Create);
while((numBytes = myStream.Read(bytes,0,count)) > 0)
fs.Write(bytes,0,numBytes);
myStream.Close();
fs.Close();
}//这个东东需要目录的权限,如果客户端是2000就设一个目录和必要的权限,再把文件拷进来就可以上传。
//如果是98,好象不行。这个可能要做postedfile的工作,我想很难。可能还是做98的工作比较容易。