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

时间:2015-05-07 10:56:24

标签: javascript c# asp.net-web-api form-data

我必须在.net中的web api中检索“idPerson”的值。 我已经检索了文件“UploadedImage”。但我无法检索“idPerson”的值。

有人有解决方案吗?

Thx!

我的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("");
        }
    }

3 个答案:

答案 0 :(得分:11)

假设您正在发送典型的Ajax POST请求,您可以从HttpContext.Current.Request.Form集合中检索每个字段。

只需在HttpContext.Current.Request.Form["KEY"]

等集合中找到您的密钥即可

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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);
    }