如何在 C# 中检索字符串 formData js

How can retrieve string formData js in c#

我必须在 .net 中的我的网站 api 中检索 "idPerson" 的值。 我已经检索到文件 "UploadedImage"。但是我无法检索 "idPerson".

的值

有人有解决办法吗?

谢谢!

我的js函数

        /**
        * Upload de l'image de profil
        * @method uploadFile
        * @private
        */
        uploadFile: function () {
            var data = new FormData(), files, ajaxRequest;

            files = $("#fileUpload").get(0).files;

            // Ajout de l'image uploadé vers les données du form
            if (files.length > 0) {
                data.append("UploadedImage", files[0]);
                // Ajout de l'id du patient pour calculer le GUID 
                data.append("idPerson", this.vm.idPerson);
            }

            return data;
        },

我的网站 api :

 /// <summary>
    /// Méthode d'upload de la photo de profil du patient
    /// </summary>
    /// <returns>Etat du téléchargement de l'image</returns>
    public MessageOutCoreVm UploadImg()
    {
        string fileSavePath = string.Empty;
        string virtualDirectoryImg = "UploadedFiles";
        string fileName = string.Empty;

        if (HttpContext.Current.Request.Files.AllKeys.Any())
        {
            // Get the uploaded image from the Files collection
            var httpPostedFile = HttpContext.Current.Request.Files["UploadedImage"];
            fileName = httpPostedFile.FileName;

            if (httpPostedFile != null)
            {
                // OBtient le path du fichier 
                fileSavePath = Path.Combine(HttpContext.Current.Server.MapPath("~/UploadedFiles"), httpPostedFile.FileName);

                // Sauvegarde du fichier dans UploadedFiles sur le serveur
                httpPostedFile.SaveAs(fileSavePath);
            }

            return MessageOutCoreVm.SendSucces(virtualDirectoryImg + '/' + fileName);
        }
        else
        {
            return MessageOutCoreVm.SendValidationFailed("");
        }
    }

假设您正在发送典型的 Ajax POST 请求,您可以从 HttpContext.Current.Request.Form collection.

检索每个字段

只需在 collection 中找到您的密钥,例如 HttpContext.Current.Request.Form["KEY"]

TBH 当你没有提供发送数据的方式时,很难说如何检索任何值。

Request.Form["KEY"] 在我的 MVC 控制器中工作。

Html:

<input id="image-file" type="file" onchange="SavePhoto(this)"/>

JavaScript:

<script type="text/javascript">

function SavePhoto()
{
     var photo = document.getElementById("image-file").files[0];  // file from input
     var req = new XMLHttpRequest();
     var formData = new FormData();

    formData.append("photo", photo );
    req.open("POST", '/upload/image2/');
    req.send(formData);       
}
</script>

C# 控制器:

    [HttpPost]
    public void Image2()
    {
        HttpPostedFileBase img2 = Request.Files["photo"];
        string path = @"D:\Server\Image\Newred\" + img2.FileName;
        img2.SaveAs(path);
    }