日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

ASP.NET MVC解決上傳圖片臟數據的方法

瀏覽:34日期:2022-06-08 10:46:24

在"在ASP.NET MVC下實現單個圖片上傳, 客戶端服務端雙重限制圖片大小和格式, 服務端裁剪圖片"中,已經實現了在客戶端和服務端限制圖片大小和格式,以及在服務端裁剪圖片。但還有一個重要的話題是需要面對的,那就是圖片臟數據問題。

假設用戶添加產品信息,并且上傳了圖片,可之后用戶沒有點擊頁面上的添加按鈕,這就導致上傳圖片成為"臟數據",存在著卻一直不會被使用。解決這個問題的大致思路是:

  • 在上傳圖片的時候,把圖片保存到一個臨時文件夾,或者叫緩存文件夾
  • 當用戶真正保存的時候,再把臨時文件夾的圖片拷貝到最終目標文件夾

假設,有這樣的一個Model,它的ImageUrl屬性,用來存放圖片真正的相對路徑。

    public class ImgVm
    {
[Required(ErrorMessage = "必填")]
public string ImageUrl { get; set; }
    }

在HomeController中,存在如下的一些Action:

  • 提供一個顯示上傳頁面的Action,并且是ImgVm類型的強類型視圖,ImgVm的ImageUrl屬性用來存放上傳圖片的相對路徑
  • 提供一個接收ImgVm類型的Action,把臨時文件夾內的圖片復制到目標文件夾內,并且給ImgVm的ImageUrl屬性賦上新的圖片相對路徑
public ActionResult Index()
{
    return View(new ImgVm());
}
[HttpPost]
public ActionResult Index(ImgVm imgVm)
{
    if (ModelState.IsValid)
    {
//目標文件夾路徑
string pathForRealSaving = Server.MapPath("~/RealUpload/");
//目標文件夾內的用戶文件夾路徑
string pathForRealUserSaving = Server.MapPath("~/RealUpload/User001/");
//當前文件路徑
string existingFilePath = Server.MapPath(imgVm.ImageUrl);
//當前文件名,根據文件路徑獲得
string existingFileName = Path.GetFileName(existingFilePath);
if (CreateFolderIfNeeded(pathForRealSaving))
{
    if (CreateFolderIfNeeded(pathForRealUserSaving))
    {
//根據當前文件路徑獲取當前文件
var existingfile = Path.GetFullPath(existingFilePath);
//獲取目標文件夾內的目標文件
var realfile = Path.Combine(pathForRealUserSaving, existingFileName);
//把臨時文件內的圖片復制到目標文件夾內
System.IO.File.Copy(existingfile, realfile, true);

//保存新的圖片相對路徑
imgVm.ImageUrl = "RealUpload/User001/" + existingFileName;
    }
}
      
return View("showimg", imgVm);
    }
    else
    {
return Index(imgVm);
    }
}

Home/Index.cshtml中多了在上傳圖片成功后給id為ImageUrl隱藏域賦值的部分。

@model MvcApplication10.Models.ImgVm
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<style type="text/css">
    #msg {
color: red;
    }
</style>
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new {id = "addForm", @class = "form-horizontal"}))
{
    <input name="file" id="file" size="27" type="file" />
    <img src="~/images/ajax-loader.gif" id="indicator" />
    <br />
    <div id="imgArea">
<table id="tbl">
    <tbody> 
    </tbody>
</table>
    </div>
    <div>
<span id="msg"></span>
    </div>  
    
    <div>
@Html.HiddenFor(m => m.ImageUrl)
<input type="submit" value="提交"/>
    </div>
}
 
@section scripts
{
    <script src="~/Scripts/checkFileTypeAndSize.js"></script>
    <script type="text/javascript">
$(function() {
    $("#file").checkFileTypeAndSize({
allowedExtensions: ["jpg","jpeg","gif","png"],
maxSize: 1024, //最大允許1024KB,即1MB
success: function () {
    //顯示進度提示
    $("#indicator").css("display", "block");
    //清空提示內容
    $("#msg").text("");
    if ($("#fn").text().length > 0) {
//刪除圖片
deleteImg();
    }
    
    //上傳文件數據準備
    var fd = new FormData();
    fd.append("image", $("#file")[0].files[0]);
    $.ajax({
url: "@Url.Action("UploadFile", "Home")",
type: "POST",
data: fd,
contentType: false,
cache: false,
processData: false,
dataType: "json",
success: function (data) {
    //隱藏進度提示
    $("#indicator").css("display", "none");
    if (data.isvalid) {
//$("#fileTemplate").tmpl(data).appendTo("#imgArea");
createTableTr();
$("#thumb").attr("src", data.filepath);
$("#fn").text(data.filename);
//清空上傳文件框內容
$("#file").val("");
//給隱藏域賦值
$("#ImageUrl").val(data.filepath);
    } else {
$("#msg").text(data.message);
     }
}
     });
    
},
extensionerror: function () {
    //alert("允許的格式為:jpg,jpeg,gif,png");
    $("#msg").text("允許的格式為:jpg,jpeg,gif,png");
    return;
},
sizeerror: function () {
    //alert("最大尺寸1024KB,即1MB");
    $("#msg").text("最大尺寸1024KB,即1MB");
    return;
}
    });
});
//刪除圖片
function deleteImg() {
    $.ajax({
cache: false,
url: "@Url.Action("DeleteFileByName", "Home")",
type: "POST",
data: { smallname: $("#fn").text() },
success: function (data) {
    if (data.msg) {
$("#fn").parent().parent().remove();
    }
},
error: function (jqXhr, textStatus, errorThrown) {
    alert("出錯了 "" + jqXhr.status + "" (狀態: "" + textStatus + "", 錯誤為: "" + errorThrown + "")");
}
    });
}
//創建表格
function createTableTr() {
    var table = $("#tbl");
    table.append("<tr><td><img id="thumb" /></td><td colspan="2"><span id="fn"></span></td></tr>");
}
    </script>
}

還有一個Home/showimg.cshtml視圖,用來顯示新的(相對臨時文件夾中的那張圖片)圖片。

@model MvcApplication10.Models.ImgVm
@{
    ViewBag.Title = "showimg";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>showimg</h2>
<img src="@Model.ImageUrl"/>

當然,存放上傳圖片的臨時文件夾是可以隨時清理的。

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對的支持。如果你想了解更多相關內容請查看下面相關鏈接

標簽: ASP.NET
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品色999| 影院欧美亚洲| 五月国产精品| 999精品色在线播放| 精品国产亚洲一区二区三区大结局| 黄色国产精品| 精品一区亚洲| 国产精品蜜月aⅴ在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 鲁大师影院一区二区三区| 亚洲午夜久久| 国产三级精品三级在线观看国产| 国产精品男女| 在线观看精品| 国产一区二区三区不卡av| 四虎国产精品免费久久| 日本不卡视频在线观看| 免费视频一区二区三区在线观看 | 国产精品yjizz视频网| 亚洲精品午夜av福利久久蜜桃| 欧美激情国产在线| 久久中文字幕av一区二区不卡| 在线视频日韩| 国产精品高清一区二区| 97国产精品| 精品一区二区三区的国产在线观看 | 日日夜夜免费精品| 综合激情婷婷| 中文字幕av一区二区三区四区| 四虎精品一区二区免费| 91综合网人人| 日韩视频不卡| 日韩午夜精品| 婷婷激情一区| 夜久久久久久| 国产探花一区二区| 91tv亚洲精品香蕉国产一区| 麻豆精品少妇| 精品视频在线你懂得| 天堂资源在线亚洲| 激情国产在线| 久久亚洲资源中文字| 国产精品宾馆| 午夜国产精品视频| 九九99久久精品在免费线bt| 中文字幕一区二区av| 一区三区视频| 国产亚洲一区二区三区不卡| 精品国产成人| 999久久久精品国产| 亚洲激情精品| 好吊视频一区二区三区四区| 亚洲福利一区| 丝袜诱惑制服诱惑色一区在线观看 | 国产综合亚洲精品一区二| 老司机精品久久| 激情五月综合| 免费看av不卡| 91精品国产自产在线丝袜啪| av综合电影网站| 免费成人在线观看| 日本а中文在线天堂| 亚洲精品一级| 精品三级国产| 久久国产精品久久w女人spa| 亚洲第一区色| 精品一区毛片| 欧美福利在线| 99成人在线| 免费在线观看精品| 欧美日韩18| 欧美久久精品| 国产伦久视频在线观看| 激情91久久| 中文字幕亚洲在线观看| 国产精久久一区二区| 欧美成人午夜| 在线亚洲欧美| 欧美日韩精品一区二区三区视频 | 日本在线精品| 欧美在线91| 日本欧美国产| 亚洲精品欧美| 亚洲伊人av| 日韩美女精品| 日韩一区二区三区在线免费观看| 日本欧美大码aⅴ在线播放| 一本色道精品久久一区二区三区| 久久精品国内一区二区三区水蜜桃| 四虎4545www国产精品 | 亚洲高清激情| 国产专区精品| 九九久久国产| 免费观看不卡av| 国产网站在线| 红桃视频欧美| 欧美日韩一视频区二区| 国产精品久久久久久久免费软件| 欧美日韩精品免费观看视欧美高清免费大片 | 91久久久久| 国产精品一卡| 在线亚洲成人| 亚洲伦乱视频| 久久国产免费看| 免费欧美在线视频| 精品丝袜在线| 红杏一区二区三区| 日韩av中文在线观看| 亚洲一本视频| 亚洲精品一级| 在线成人直播| 蜜桃av.网站在线观看| 视频一区二区三区在线| 国产精品外国| 欧美不卡在线| 国产精品13p| 在线观看视频免费一区二区三区| 国产亚洲精品久久久久婷婷瑜伽| 亚洲欧洲专区| 精品日本视频| 深夜日韩欧美| 亚洲精品国产偷自在线观看| 国产精品调教视频| 亚洲精品一区三区三区在线观看| 久久精品导航| 黑森林国产精品av| 麻豆国产91在线播放| 国产精品极品| 视频二区不卡| 欧美日韩国产欧| 青青草国产精品亚洲专区无| 国产精品高清一区二区| 中文一区一区三区高中清不卡免费| 一区三区视频| 亚洲三级欧美| 国产a久久精品一区二区三区| 国产欧美高清视频在线| 日韩av网站在线免费观看| 亚洲视频二区| 九一成人免费视频| 蜜桃av.网站在线观看| 国产不卡人人| 国产精品黑丝在线播放| 成人在线丰满少妇av| 奇米色欧美一区二区三区| 91亚洲无吗| 日韩成人午夜精品| 国产免费播放一区二区| 亚洲一区二区动漫| 亚洲欧美视频一区二区三区| 精品视频久久| 在线免费观看亚洲| 久久精品欧美一区| 欧美日中文字幕| 日韩1区2区| 国产一区二区三区国产精品| 日韩精品一区第一页| 日韩av首页| 国产精品一区二区精品视频观看| 四虎精品永久免费| 亚洲精品一二三**| 麻豆亚洲精品| 婷婷亚洲成人| 国产精品115| 久久尤物视频| 国产一区二区三区四区二区| 久久丁香四色| 成人在线超碰| 午夜影院一区| 久久精品123| 日韩电影免费在线观看| 成人一区不卡| 深夜视频一区二区| 激情综合亚洲| 中文字幕一区二区三区四区久久| 久久精品99国产国产精| 国产精品久久久久久模特| 久久精品中文| 亚洲18在线| 国产精品v日韩精品v欧美精品网站| 欧美国产视频| 久久久久国产精品一区三寸| 免费日韩视频| 麻豆精品蜜桃视频网站| av免费不卡国产观看| 麻豆免费精品视频| 性一交一乱一区二区洋洋av| 日韩精品一区二区三区中文 | 悠悠资源网久久精品| 日韩视频二区| 美女免费视频一区| 久久aⅴ国产紧身牛仔裤| 婷婷五月色综合香五月| 天堂中文在线播放| 日韩不卡在线观看日韩不卡视频| 日日摸夜夜添夜夜添国产精品| 欧美1区2区3| 国产精品腿扒开做爽爽爽挤奶网站| 美女久久精品| 激情五月综合|