【问题标题】:How to send image into a specific folder?如何将图像发送到特定文件夹?
【发布时间】:2018-12-02 12:48:57
【问题描述】:

我有一个输入元素,它选择如下图像:

HTML 代码

<input type="file"  id="uploadEditorImage"  />

Javascript 代码

$("#uploadEditorImage").change(function () {
var data = new FormData();
var files = $("#uploadEditorImage").get(0).files;
if (files.length > 0) {
    data.append("HelpSectionImages", files[0]);
}
$.ajax({
    url: resolveUrl("~/Admin/HelpSection/AddTextEditorImage/"),
    type:"POST",
    processData: false,
    contentType: false,
    data: data,
    success: function (response) {
       //code after success

    },
    error: function (er) {
        alert(er);
    }

});

MVC 控制器中的代码

if (System.Web.HttpContext.Current.Request.Files.AllKeys.Any())
    {
        var pic = System.Web.HttpContext.Current.Request.Files["HelpSectionImages"];
    }

我想将所选图像保存在特定文件夹中,例如 C\Temp。我该怎么做呢?请帮忙。

谢谢。

【问题讨论】:

标签: asp.net image location directory


【解决方案1】:

在您的 html 中:

 <input type="file" id="FileUpload1" />

脚本:

 $(document).ready(function () {
        $('#FileUpload1').change(function () {

            // Checking whether FormData is available in browser
            if (window.FormData !== undefined) {
                var data = new FormData();
                var files = $("#FileUpload1").get(0).files;
                console.log(files);
                if (files.length > 0) {
                    data.append("HelpSectionImages", files[0]);
                }
                $.ajax({
                    url: '/Home/UploadFiles',
                    type: "POST",
                    contentType: false, // Not to set any content header
                    processData: false, // Not to process data
                    data: data,
                    success: function (result) {
                        alert(result);
                    },
                    error: function (err) {
                        alert(err.statusText);
                    }
                });
            } else {
                alert("FormData is not supported.");
            }
        });
    });

和后端:

  [HttpPost]
    public ActionResult UploadFiles()
    {
        // Checking no of files injected in Request object  
        if (Request.Files.Count > 0)
        {
            try
            {
                //  Get all files from Request object  
                HttpFileCollectionBase files = Request.Files;
                for (int i = 0; i < files.Count; i++)
                {
                    //string path = AppDomain.CurrentDomain.BaseDirectory + "Uploads/";  
                    //string filename = Path.GetFileName(Request.Files[i].FileName);  

                    HttpPostedFileBase file = files[i];
                    string fname;

                    // Checking for Internet Explorer  
                    if (Request.Browser.Browser.ToUpper() == "IE" || Request.Browser.Browser.ToUpper() == "INTERNETEXPLORER")
                    {
                        string[] testfiles = file.FileName.Split(new char[] { '\\' });
                        fname = testfiles[testfiles.Length - 1];
                    }
                    else
                    {
                        fname = file.FileName;
                    }

                    // Get the complete folder path and store the file inside it.  
                    fname = Path.Combine(Server.MapPath("~/Content/"), fname);
                    file.SaveAs(fname);
                }
                // Returns message that successfully uploaded  
                return Json("File Uploaded Successfully!");
            }
            catch (Exception ex)
            {
                return Json("Error occurred. Error details: " + ex.Message);
            }
        }
        else
        {
            return Json("No files selected.");
        }
    }

【讨论】:

  • 没用...我认为 Javascript 中的 Url 可能也需要更改。不?谢谢。
  • 还是不行...我需要添加第二个按钮来保存吗?谢谢。
  • @Alc 不!您不需要,因为当您更改文件上传时它会触发功能,但请注意您的 URL ( url: '/Home/UploadFiles',) 是正确的,它位于家庭控制器中,或者如果您想要更改它,您可以使用调试器jquery 并在您的后端调试以查看您的问题。我试过了,它成功了。我会跳成功的
猜你喜欢
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
相关资源
最近更新 更多