加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 保存为“BodyPart_3ded2bfb-40be-4183-b789-9301

发布时间:2020-12-15 19:12:04 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET Web API上传文件。我在RC之前这样做了,但由于某种原因,该文件被保存为“BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af”而不是文件名。下面的文件名变量也返回此bodypart字符串,而不是文件名。我似乎不知道我在哪里错了。任何帮助是
我正在使用ASP.NET Web API上传文件。我在RC之前这样做了,但由于某种原因,该文件被保存为“BodyPart_3ded2bfb-40be-4183-b789-9301f93e90af”而不是文件名。下面的文件名变量也返回此bodypart字符串,而不是文件名。我似乎不知道我在哪里错了。任何帮助是赞赏。

客户代码:

function upload() {
    $("#divResult").html("Uploading...");
    var formData = new FormData($('form')[0]); 
    $.ajax({
        url: 'api/files/uploadfile?folder=' + $('#ddlFolders').val(),type: 'POST',success: function (data) {
            $("#divResult").html(data);
        },data: formData,cache: false,contentType: false,processData: false
    });
};

控制器:

public Task<HttpResponseMessage> UploadFile([FromUri]string folder)
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
        }

        // Save file
        MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
        Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);

        return task.ContinueWith<HttpResponseMessage>(contents =>
        {
            string filename = provider.BodyPartFileNames.First().Value;
            return new HttpResponseMessage()
          {
              Content = new StringContent(string.Format("File saved in {0}.",folder))
          };

        },TaskScheduler.FromCurrentSynchronizationContext());

文件看起来像:

解决方法

这是我们做出的一个严重的改变 – 考虑到采取在Content-Disposition头字段中提供的文件名的安全风险,所以我们现在计算一个文件名,这是你看到的。

如果你想自己控制服务器本地文件名,那么你可以从MultipartFormDataStreamProvider派生并覆盖GetLocalFileName,以提供任何你想要的名称。请注意,这样做可能有安全注意事项。

希望这可以帮助,

Henrik

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读