Загруженный файл не отображается в контроллере веб-интерфейса asp.net - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь создать простую программу загрузки изображений, и мой код не работает следующим образом.если кто-нибудь сможет это понять, это спасет мне жизнь, спасибо

вот мой угловой сервис

 postFiles(caption: string, filetouplaod: File) {

    const headerss = new HttpHeaders({
        'Content-Type': 'multipart/form-data',
        'Authorization': this.globalsr.PrimaryTocken
    })

    let file: File = filetouplaod;

    let formData: FormData = new FormData();
    formData.append('uploadFile', file, file.name);
    return this._http.post(`${this.globalsr.PrimaryAPI}Uploader/UploadSingleImage`, formData, {headers:headerss})
}

Аутентификационный токен

частное _primaryTocken: строка = "Знаменосец ansKFMPonKyab-TBmgQAThXNKoSAt8ZHej31-Is1a0X0wo5iSIjiaXvRdHscyr9J3v3iG3PTg8_BnoZaiMRCEY03zAONYrKppp1ZdSAgGenMcqeW-UYyKKkOEk7UhXO3l1_-9kXc9rBnekuOIqCrH8TfbcF_G_hgUVFS2N8omQYetJ-VobtaW8n-8AZL72wigGeckLtjZhm12aEEwxsDxnrrY4WA0kB3T9eNURvSO_9lwjJ2_oBRwOPojcAh-dfrlOln0DkSpYL8F2Si2Od63pesFnMZ9uhBkYjZvWCfeN0k8-V7jvBLae_Pz_ljoYM1rVRF-CXwQgBOKiKmSi9h65DUAsqaQY8gLXb69xqPmomscXLn4yVwsdkNyZlayuVlL3EhQgjslgss6xqiUw36SPSsfTN9rMmRQr3dpiJogn61U7kF5FqCRAhmjj_JPOo8aXoh1EGkov0ArerB6lgMDvt3UM_f8-Dzi0i8vtZrstg";

Контроллер моего веб-API

    [Authorize]
    [HttpPost]
    [Route("UploadSingleImage")]
    public HttpResponseMessage UploadSingleImage()
    {
        var exMessage = string.Empty;
        try
        {
            string uploadPath = "~/content/upload";
            HttpPostedFile file = null;
            if (HttpContext.Current.Request.Files.Count > 0)
            {
                file = HttpContext.Current.Request.Files.Get("file");
            }
            // Check if we have a file
            if (null == file)
                return Request.CreateResponse(HttpStatusCode.BadRequest, new
                {
                    error = true,
                    message = "Image file not found"
                });

            // Make sure the file has content
            if (!(file.ContentLength > 0))
                return Request.CreateResponse(HttpStatusCode.BadRequest, new
                {
                    error = true,
                    message = "Image file not found"
                });

            if (!Directory.Exists(HttpContext.Current.Server.MapPath(uploadPath)))
            {
                // If it doesn't exist, create the directory
                Directory.CreateDirectory(HttpContext.Current.Server.MapPath(uploadPath));
            }

            //Upload File
            file.SaveAs(HttpContext.Current.Server.MapPath($"{uploadPath}/{file.FileName}"));

        }
        catch (Exception ex)
        {
            exMessage = ex.Message;
        }
        return Request.CreateResponse(HttpStatusCode.BadRequest, new { error = true, message = exMessage == string.Empty ? "An unknown error occured" : exMessage });
    }

, но дело в том, что число файлов постоянно равно нулю.

HttpContext.Current.Request.Files.Count

, поэтому я 'Мы посылаем точные данные, используя метод почтальона, и веб-интерфейс работает нормально.Любые идеи, пожалуйста

1 Ответ

0 голосов
/ 09 февраля 2019

файл не может получить файл, который вы пытаетесь загрузить из элемента ввода файла.Используйте журнал cosole для проверки содержимого filetouplaod.

 let file: File = filetouplaod;

Допустим, fileInput является элементом ввода, затем вам следует присвоить что-то вроде этого filetouplaod = fileInput.files[0]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...