上传图片时,图片格式需要在js里判断,因为若是在前台,文件既不符合格式有过大,系统可能崩溃
<input type="file" id="fileZ" runat="server" οnchange="getPhoto(this)" />
js:
//判断图片上传格式
function getPhoto(obj) {
var photoExt = obj.value.substr(obj.value.lastIndexOf(".")).toLowerCase();
if (photoExt == '.gif' || photoExt == '.png' || photoExt == '.jpeg' || photoExt == '.jpg' || photoExt == '.bmp') {
return true;
}
else {
alert("上传图片格式不正确!");
obj.outerHTML = obj.outerHTML; //上传控件的清除文本框的值
return false;
}
}
方法:
private void GetFilePathName(ref string filename, out string path, string a)
{
path = Server.MapPath("~/UpFile/" + CustomerID + "/");//指定文件上传的物理路径
//判断上传文件夹是否存在,若不存在,则创建
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);//创建文件夹
}
if (filename != "")//判断上传空间是否有文件
{
string fileExtension = System.IO.Path.GetExtension(filename).ToLower(); //获取文件名的扩展名
try
{
filename = a + fileExtension; //名字+后缀
path = path + filename; //文件路径
}
catch (Exception ex)
{
strmess="文件不能上传,原因:"+ex.Message;
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('文件不能上传!');"+strmess+"</script>");
}
}
}
提交按钮事件
string newname = System.DateTime.Now.ToString("yyyyMMddHHssffff");//设置文件的新名
if (fileZ.PostedFile.FileName.ToString() != "")//判断上传空间是否有文件
{
string filename;
filename = this.fileZ.PostedFile.FileName;//获取上传文件的名字
string path;
GetFilePathName(ref filename, out path, newname);
this.fileZ.PostedFile.SaveAs(path);//保存上传文件
}
else
{
ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('请选择上传附件!');</script>");
}
web.config
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime maxRequestLength="4096" executionTimeout="120"></httpRuntime>
</system.web>
</configuration>