gpt4 book ai didi

jquery - 使用 Fileupload asp.net mvc 和 Jquery 预览图像

转载 作者:行者123 更新时间:2023-12-01 01:02:05 25 4
gpt4 key购买 nike

我正在尝试预览用户尝试上传的图像。这是我正在使用的代码。这在所有主要浏览器中都工作正常,但我想知道是否有更好的方法可以在不使用 session 的情况下实现此目的(即使我正在清除 session )?我不想使用 Flash。

   @using (Html.BeginForm("UploadImage", "Home", FormMethod.Post, new { id = "fileuploadform", @enctype = "multipart/form-data" }))
{
<input id="fileupload" type="file" onchange="ChangeImage()" name="files" multiple>
<div id="preview">
<img src="#" id="imgThumbnail" alt="preview" />
</div>

}
<script>
$(function ChangeImage() {
$('#fileuploadform').fileupload({
done: function (e, data) {
var d = new Date();
$('#imgThumbnail')[0].src = "/Home/ImageLoad?a=" + d.getTime();
}
});
});
</script>

[HttpPost]
public ActionResult UploadImage(IEnumerable<HttpPostedFileBase> files, PostViewModel model)
{

Session["ContentLength"] = Request.Files[0].ContentLength;
Session["ContentType"] = Request.Files[0].ContentType;
byte[] b = new byte[Request.Files[0].ContentLength];
Request.Files[0].InputStream.Read(b, 0, Request.Files[0].ContentLength);
Session["ContentStream"] = b;
return Content(Request.Files[0].ContentType + ";" + Request.Files[0].ContentLength);
}

public ActionResult ImageLoad(int? id)
{
byte[] b = (byte[])Session["ContentStream"];
int length = (int)Session["ContentLength"];
string type = (string)Session["ContentType"];
Session["ContentLength"] = null;
Session["ContentType"] = null;
Session["ContentStream"] = null;
return File(b, type);
}

最佳答案

您尝试过这个解决方案吗?

Preview an image before it is uploaded

此解决方案是纯粹的客户端解决方案,预览前不需要上传到您的服务器。 :)

关于jquery - 使用 Fileupload asp.net mvc 和 Jquery 预览图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14429149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com