<input type="button" value="上传" onclick="up()" />
<form name="uploadForm" id="uploadForm">
<input type="file" multiple="multiple" id="upFile" name="upFile" style="display: none;" />
</form>
function up() {
$('#upFile').val('');
$('#upFile').click();
}
$(function () {
$(document).on("change", "#upFile", function (e) {
var val = $('#upFile').val();
if (val) {
$.ajax({
url: '<%= ResolveUrl("~/AttchUpload.ashx") %>',
type: 'POST',
cache: false,
data: new FormData($('#uploadForm')[0]),
processData: false,
contentType: false,
async: false,
success: function (result) {
alert('上传成功!')
},
error: function (json) {
alert("上传失败!请网络状况。")
}
});
}
})
});
public class AttchUpload : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// 获取从MIME中读取出来的文件
HttpFileCollection ListFile = context.Request.Files;
try
{
for (int n = 0; n < ListFile.Count; n++)
{
HttpPostedFile i = ListFile[n];
if (!string.IsNullOrEmpty(i.FileName))
{
string FileName = Path.GetFileName(i.FileName);
string FileNameNotExtension = Path.GetFileNameWithoutExtension(i.FileName);
string FileExtensionName = Path.GetExtension(i.FileName);
Stream inStream = null;
Stream fmpStream = null;
try
{
inStream = Topevery.Framework.CommonModel.Utility.StaticFunction.StreamToMemoryStream(i.InputStream);
Guid id = Guid.NewGuid();
fmpStream = Topevery.FMP.ObjectModel.FileManager.CreateFile(id, FileName);
Topevery.Framework.CommonModel.Utility.StaticFunction.StreamSourceStreamToTargetStream(inStream, fmpStream);
context.Response.Write(id.ToString());
}
catch (Exception ex)
{
LogHelper.Error("FMP错误", ex);
throw ex;
}
finally
{
if (inStream != null)
{
inStream.Close();
inStream.Dispose();
}
if (fmpStream != null)
{
fmpStream.Close();
fmpStream.Dispose();
}
}
}
}
}
catch (Exception ex)
{
LogHelper.Error("上传附件错误", ex);
throw ex;
}
}
public bool IsReusable
{
get
{
return false;
}
}
}