html:
<p>指定文件名: <input type="text" name="filename" value="" /></p>
<p>上传文件: <input type="file" name="file" id="myfile" /></ p>
<input type="button" value="上传" οnclick="doUpload()" />
javascript:
<script>
function doUpload() {
var filepath = $("#myfile").val();
var file = $("#myfile");
if (getFileSize() == false) {
return false;
}
var extStart = filepath.lastIndexOf(".");
var ext = filepath.substring(extStart, filepath.length).toUpperCase();
if (ext != ".BMP" && ext != ".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG" && ext != ".PDF") {
alert("文件限于bmp,png,gif,jpeg,jpg,pdf格式");
return false;
}
//var formData = new FormData($("#uploadForm")[0]);
var formData = new FormData();
formData.append("userfile", $('#myfile')[0].files[0]);
$.ajax({
url: 'UploadFile.ashx',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert(returndata);
},
error: function (returndata) {
alert(returndata);
}
});
}
function getFileSize() {
try {
var size = 0;
var isie = false;
try {
isie = $.browser.msie;
}
catch(ee)
{
}
if (isie) {//ie旧版浏览器
var fileMgr = new ActiveXObject("Scripting.FileSystemObject");
var filePath = $('#myfile')[0].value;
var fileObj = fileMgr.getFile(filePath);
size = fileObj.size; //byte
size = size / 1024;//kb
size = size / 1024;//mb
} else {//其它浏览器
size = $('#myfile')[0].files[0].size;//byte
size = size / 1024;//kb
size = size / 1024;//mb
}
if (size > 1) {
return false;
}
return true;
} catch (e) {
return false
}
}
</script>
后台处理:
HttpServerUtility server = context.Server;
HttpRequest request = context.Request;
HttpResponse response = context.Response;
HttpPostedFile file = context.Request.Files[0];
if (file.ContentLength > 0)
{
string extName = Path.GetExtension(file.FileName);
string fileName = Guid.NewGuid().ToString();
string fullName = fileName + extName;
string imageFilter = ".jpg|.png|.gif|.ico|.zip|.rar";// 随便模拟几个图片类型
if (imageFilter.Contains(extName.ToLower()))
{
string phyFilePath = server.MapPath("~/Upload/Image/") + fullName;
file.SaveAs(phyFilePath);
//response.Write("上传成功!文件名:" + fullName + "<br />");
var path = "http://"+ HttpContext.Current.Request.Url.Authority + "/Upload/Image/" + fullName;
response.Write(path);
}
}
formdata是关键!!!!