我搜了个C#上传网页的例子
<input id="File1" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 80px" type="file" name="File1" runat="server"/>
<asp:Label id="Label2" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 80px" runat="server"
Width="128px">选择要上传的文件</asp:Label>
<asp:Button id="btnUpload" style="Z-INDEX: 104; LEFT: 32px; POSITION: absolute; TOP: 112px"
runat="server" Width="80px" Text="开始上传" onclick="btnUpload_Click"></asp:Button>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" style="Z-INDEX: 105; LEFT: 416px; POSITION: absolute; TOP: 88px"
runat="server" Font-Size="Smaller" Font-Bold="True" ErrorMessage="请选择要上传的文件" ControlToValidate="File1"></asp:RequiredFieldValidator>
<asp:Image id="Image1" style="Z-INDEX: 106; LEFT: 32px; POSITION: absolute; TOP: 224px" runat="server"></asp:Image>
<asp:Label id="Label3" style="Z-INDEX: 107; LEFT: 32px; POSITION: absolute; TOP: 168px" runat="server"></asp:Label>
后台
protected void btnUpload_Click(object sender, EventArgs e)
{ string fileFullname = this.File1.PostedFile.FileName;
long aa = this.File1.PostedFile.InputStream.Length;
double bb = aa / 1024;
double cc = bb / 1024;
//if (aa >= (1024 * 1024 * 3))
//{
// Response.Write("<script language='javascript'>alert('文件最大不能超过3M!');</script>");
// return;
//}
//取出当前日期
string dataName = DateTime.Now.ToString("yyyyMMddhhmmss");
//取文件扩展名
string fileName = fileFullname.Substring(fileFullname.LastIndexOf("\\") + 1);
//截取上传文件的扩展名既"."后面的字母所以+1
string type = fileFullname.Substring(fileFullname.LastIndexOf(".") + 1);
//类型控制,想上传什么类型,可以在这里类似添加
if (type == "JPG" || type == "jpg" || type == "gif" || type == "bmp")
{
this.File1.PostedFile.SaveAs(Server.MapPath("pic") + "\\" + dataName + fileName);
Response.Write("<script language='javascript'>alert('上传成功!');</script>");
//image1输出上传图片,可以在这里控制图片大小
this.Image1.ImageUrl = "pic" + "\\" + dataName + fileName;
}
else
{
Response.Write("<script language='javascript'>alert('你选的文件类型不符!');</script>");
}
}
但是老出错,有的文件上传成功,有的时候显示无法连接该页不知道为什么,是不是上传的文件大小有限制,那位对RequiredFieldValidator熟悉,请教......
<input id="File1" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 80px" type="file" name="File1" runat="server"/>
<asp:Label id="Label2" style="Z-INDEX: 103; LEFT: 32px; POSITION: absolute; TOP: 80px" runat="server"
Width="128px">选择要上传的文件</asp:Label>
<asp:Button id="btnUpload" style="Z-INDEX: 104; LEFT: 32px; POSITION: absolute; TOP: 112px"
runat="server" Width="80px" Text="开始上传" onclick="btnUpload_Click"></asp:Button>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" style="Z-INDEX: 105; LEFT: 416px; POSITION: absolute; TOP: 88px"
runat="server" Font-Size="Smaller" Font-Bold="True" ErrorMessage="请选择要上传的文件" ControlToValidate="File1"></asp:RequiredFieldValidator>
<asp:Image id="Image1" style="Z-INDEX: 106; LEFT: 32px; POSITION: absolute; TOP: 224px" runat="server"></asp:Image>
<asp:Label id="Label3" style="Z-INDEX: 107; LEFT: 32px; POSITION: absolute; TOP: 168px" runat="server"></asp:Label>
后台
protected void btnUpload_Click(object sender, EventArgs e)
{ string fileFullname = this.File1.PostedFile.FileName;
long aa = this.File1.PostedFile.InputStream.Length;
double bb = aa / 1024;
double cc = bb / 1024;
//if (aa >= (1024 * 1024 * 3))
//{
// Response.Write("<script language='javascript'>alert('文件最大不能超过3M!');</script>");
// return;
//}
//取出当前日期
string dataName = DateTime.Now.ToString("yyyyMMddhhmmss");
//取文件扩展名
string fileName = fileFullname.Substring(fileFullname.LastIndexOf("\\") + 1);
//截取上传文件的扩展名既"."后面的字母所以+1
string type = fileFullname.Substring(fileFullname.LastIndexOf(".") + 1);
//类型控制,想上传什么类型,可以在这里类似添加
if (type == "JPG" || type == "jpg" || type == "gif" || type == "bmp")
{
this.File1.PostedFile.SaveAs(Server.MapPath("pic") + "\\" + dataName + fileName);
Response.Write("<script language='javascript'>alert('上传成功!');</script>");
//image1输出上传图片,可以在这里控制图片大小
this.Image1.ImageUrl = "pic" + "\\" + dataName + fileName;
}
else
{
Response.Write("<script language='javascript'>alert('你选的文件类型不符!');</script>");
}
}
但是老出错,有的文件上传成功,有的时候显示无法连接该页不知道为什么,是不是上传的文件大小有限制,那位对RequiredFieldValidator熟悉,请教......
{
public UpLoadFiles()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public string UploadFile(string filePath,int maxSize,string[] fileType,System.Web.UI.HtmlControls.HtmlInputFile TargetFile)
{
string Result = "UnDefine";
bool typeFlag = false;
string FilePath = filePath;
int MaxSize = maxSize;
string strFileName,strNewName,strFilePath;
if (TargetFile.PostedFile.FileName=="")
{
return "FILE_ERR";
}
strFileName = TargetFile.PostedFile.FileName;
TargetFile.Accept = "*/*";
strFilePath = FilePath;
if (Directory.Exists(strFilePath)==false)
{
Directory.CreateDirectory(strFilePath);
}
FileInfo myInfo=new FileInfo(strFileName);
string strOldName=myInfo.Name;
strNewName=strOldName.Substring(strOldName.Length-3,3);
strNewName = strNewName.ToLower();
if( TargetFile.PostedFile.ContentLength <= MaxSize)
{
for(int i = 0;i<=fileType.GetUpperBound(0);i++)
{
if (strNewName.ToLower() == fileType[i].ToString()){typeFlag = true;break;}
}
if(typeFlag)
{
string strFileNameTemp = GetUploadFileName();
string strFilePathTemp = strFilePath ;
float strFileSize = TargetFile.PostedFile.ContentLength / 1024;
strOldName = strFileNameTemp + "." +strNewName;
strFilePath=strFilePath + "\\" + strOldName;
TargetFile.PostedFile.SaveAs(strFilePath);
Result = strOldName + "|" + strFileSize;
TargetFile.Dispose();
}
else
{
return "TYPE_ERR";
}
}
else
{
return "SIZE_ERR";
}
return(Result);
} public string UploadFile(string filePath,int maxSize,string[] fileType, string filename, System.Web.UI.HtmlControls.HtmlInputFile TargetFile)
{
string Result = "UnDefine";
bool typeFlag = false;
string FilePath = filePath;
int MaxSize = maxSize;
string strFileName,strNewName,strFilePath;
if (TargetFile.PostedFile.FileName=="")
{
return "FILE_ERR";
}
strFileName = TargetFile.PostedFile.FileName;
TargetFile.Accept = "*/*";
strFilePath = FilePath;
if (Directory.Exists(strFilePath)==false)
{
Directory.CreateDirectory(strFilePath);
}
FileInfo myInfo=new FileInfo(strFileName);
string strOldName=myInfo.Name;
strNewName=strOldName.Substring(strOldName.Length-3,3);
strNewName = strNewName.ToLower();
if( TargetFile.PostedFile.ContentLength <= MaxSize)
{
for(int i = 0;i<=fileType.GetUpperBound(0);i++)
{
if (strNewName.ToLower() == fileType[i].ToString()){typeFlag = true;break;}
}
if(typeFlag)
{
string strFileNameTemp = filename;
string strFilePathTemp = strFilePath ;
strOldName = strFileNameTemp + "." +strNewName;
strFilePath=strFilePath + "\\" + strOldName;
TargetFile.PostedFile.SaveAs(strFilePath);
Result = strOldName;
TargetFile.Dispose();
}
else
{
return "TYPE_ERR";
}
}
else
{
return "SIZE_ERR";
}
return(Result);
} private string GetUploadFileName()
{
string Result = "";
DateTime time = DateTime.Now;
Result += time.Year.ToString() + FormatNum(time.Month.ToString(),2) + FormatNum(time.Day.ToString(),2) + FormatNum(time.Hour.ToString(),2) + FormatNum(time.Minute.ToString(),2) + FormatNum(time.Second.ToString(),2) + FormatNum(time.Millisecond.ToString(),3) ;
return(Result);
} public string FormatNum(string Num, int Bit)
{
int L;
L = Num.Length;
for (int i = L; i < Bit; i++)
{
Num = "0" + Num;
}
return (Num);
}
}
调用代码:
string path="";
path = Server.MapPath("路径");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
if(this.file.PostedFile.FileName != "")
{
string[] filetype = new string[]{"jpg","gif"};
string filename = new UpLoadFiles().UploadFile(path, 1000000, filetype, file); //1000000单位是字节
}
在服务器的IIS上可以修改上传大小,不过不建议改太大