DUVIDA AJAX - POST ASP NET MVC

11/06/2018

0

Boa tarde! Uma dúvida em AJAX. Eu gostaria de passar um arquivo que foi feito upload na VIEW, um ID e um MENSAGEM para um método Asp net MVC, um ActionResult. Alguém pode me da um exemplo de como fazer: Estou fazendo assim e não funciona:

$(document).ready(function () {
$(''''#btnUpload'''').click(function () {
var fileUploadUrl = $(''''#FileUploadUrl'''').val();
var files = new FormData();
var file1 = document.getElementById("fileOne").files[0];
var file2 = document.getElementById("fileTwo").files[0];
files.append(''''files[0]'''', file1);
files.append(''''files[1]'''', file2);

var data = {
CHAMADO_ID: 1,
MENSAGEM: ''''MIMI I LOVE YOU'''',
FileA: files
};

$.ajax({
type: ''''POST'''',
url: fileUploadUrl,
data: { CHAMADO_ID: CHAMADO_ID, MENSAGEM: MENSAGEM },
dataType: ''''json'''',
cache: false,
contentType: false,
processData: false,
success: function (response) {
$(''''#uploadMsg'''').text(''''Files have been uploaded successfully'''');
},
error: function (error) {
$(''''#uploadMsg'''').text(''''Error has occured. Upload is failed'''');
}
});
});
});


CONTROLLER:

public ActionResult UploadFiles(string MENSAGEM, string CHAMADO_ID)
{


var chamado = CHAMADO_ID;
var mensagemTxt = MENSAGEM;

bool isSuccess = false;
string serverMessage = string.Empty;
var fileOne = Request.Files[0] as HttpPostedFileBase;
var fileTwo = Request.Files[1] as HttpPostedFileBase;
string uploadPath = ConfigurationManager.AppSettings["UPLOAD_PATH"].ToString();
string newFileOne = Path.Combine(uploadPath, fileOne.FileName);
string newFileTwo = Path.Combine(uploadPath, fileTwo.FileName);

fileOne.SaveAs(newFileOne);
fileTwo.SaveAs(newFileTwo);

if (System.IO.File.Exists(newFileOne) && System.IO.File.Exists(newFileTwo))
{
isSuccess = true;
serverMessage = "Files have been uploaded successfully";
}
else
{
isSuccess = false;
serverMessage = "Files upload is failed. Please try again.";
}
return Json(new { IsSucccess = isSuccess, ServerMessage = serverMessage }, JsonRequestBehavior.AllowGet);
}
Rebeca Teles

Rebeca Teles

Responder

Posts

26/07/2019

Stella Oliveira

Ei Rebeca, boa tarde.

Acredita que ACABEI de fazer isso? rs

Minha View:

<div>
                    <label class="btn-bmg actions bg-color-3 color-1" for="file" data-toggle="tooltip" data-placement="right" title="Faça o upload do arquivo">
                        <span class="glyphicon glyphicon-cloud-upload"></span>
                        Clique aqui para envio da planilha
                    </label>
                    @Html.TextBox("postedFile", "", new { id = "file", type = "file", accept = ".csv", @style = "display: none" })
                </div>



Meu ajax ficou assim:

$('#file').change(function (event) {
            var postedFile = new FormData();
            var file = document.getElementById('file').files[0];
            postedFile.set("postedFile", file);

            $.ajax({
                url: "/Controller/ActionName/", //Nome da Controller e da Action (Rota)
                data: postedFile,
                processData: false,
                contentType: false,
                type: 'POST',
                success: function (data) {
                    console.log("reaload");
                    document.location.reload(true);
                },
                error: function (data) {
                    console.log("Erro ao fazer upload de arquivo");
                }
            });
        });
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar