Загрузка файла с его авторизацией ввода

#c#

Вопрос:

Я новичок в ASP NET, мне удалось восстановить свое изображение, но я также хочу восстановить имя автора, но я не прибываю немного помогите мне, спасибо

Представление (index.cshtml)

         <input type="button" id="Upload" value="Ajouter" class="btn btn-primary" />
    </form>
 

Код Jquery и Ajax

 <script>
    
    $(document).ready(function(){
        $('#Upload').click(function () {
    
                var fileUpload = $("#files").get(0);
                var files = fileUpload.files;
            var auteur = $("#auteur");
             // Creation d' un objet FormData
                var fileData = new FormData();
    
                // s'il y a plusieurs fichiers, parcourez chaque fichier
                for (var i = 0; i < files.length; i  ) {
                    fileData.append(files[i].name, files[i]);
                }
    
                // Ajouter plus de clés/valeurs ici si besoin
                fileData.append(auteur, "Test Object values");
    
            $.ajax({
                url: '/Home/UploadFiles',
                type: "POST",
                processData: false,
                contentType: false,
                data: fileData
                ,
                    async: false,
                    success: function (result) {
                        alert(result);
                    },
                    error: function (err) {
                        alert(err.statusText);
                    }
                });
    
        });
    });
</script>
 

Контроллер

 [HttpPost]
        public ActionResult UploadFiles()
        {
            if (Request.Files.Count > 0)
            {
                var files = Request.Files;
                var auteur = Request.Form["auteur"];

                // itération à travers plusieurs collections de fichiers
                foreach (string str in files)
                {
                    HttpPostedFileBase file = Request.Files[str] as HttpPostedFileBase;
                    var InputFileName = Path.GetFileName(file.FileName);
                    var ServerSavePath = Path.Combine(HttpContext.Server.MapPath("~/Uploads/")   InputFileName);

                    //verification avant enregistrement
                    if (System.IO.File.Exists(ServerSavePath)==false)
                    {
                       
                        //Enregistrement du fichier dans le dossier
                        
                        file.SaveAs(ServerSavePath);
                        return Json(auteur,JsonRequestBehavior.AllowGet);
                    }

                    else
                    {
                        return Json("Le fichier existe deja");
                    }

                }
                return Json("File Uploaded Successfully!");
            }
            else
            {
                return Json("vous devez selectionner un fichier");
            }
        }
    }
 

Ответ №1:

В вашем коде jQuery Ajax по адресу:

 fileData.append(auteur, "Test Object values")
 

Когда вы запрашиваете Запрос.Форма[«автор»] убедитесь, что имя (первое в скобках) точно такое же. Это правильный путь:

 fileData.append("auteur", auteur);
 

Ошибка заключалась в том, что вы передавали объект, а не имя.

Комментарии:

1. Спасибо. var autheur=$(«#автор»).val().мой скрипт работает хорошо

2. Отлично! Хорошая работа.