gpt4 book ai didi

javascript - HttpPostedFileBase 每次都返回 null

转载 作者:行者123 更新时间:2023-11-30 21:09:41 26 4
gpt4 key购买 nike

我的客户端javascript代码是

function SendMail() {
debugger;
var decpr = tinyMCE.get('taskdescription').getContent();
var To = $('#EmailTo').val();
var cc = $('#EmailCC').val();
var sub = $('#Subject').val();
var Desc = $(decpr).text();
var UserName = $('#resname').val();
$("#frm1").attr('action', '/Task/SendWeeklyReport.aspx?To=' + To + '&cc=' + cc + '&subject=' + sub + '&desc=' + Desc + '&Username=' + UserName);
$("#frm1").attr('enctype', 'multipart/form-data');
$("#frm1").attr('method', 'post');
$('#frm1').ajaxSubmit({
datatype: 'text',
success: function (data, text) {
$("#frm1").removeAttr('action');
$("#frm1").removeAttr('enctype');
$("#frm1").removeAttr('method');
},
error: function (request, status, error) {

}
});

}

我在 Controller 中的隐藏函数代码是

    [HttpPost]
public virtual ActionResult SendWeeklyReport(HttpPostedFileBase[] fileval, string To, string cc, string subject, string desc, string Username)
{

foreach (var file in fileval)
{
// some file manipulation
}
}

我在 fileval 中得到一个空值。

我的文件选择是

<input type="file" name="fileval" multiple id="fileselect" style="margin-left: 15px; position: relative; width: 96px" /> 

我得到了我传递的所有其他值,除了文件。

最佳答案

@avinash 我在这里附上我的代码。我已经测试过它并且工作正常。我希望这会有所帮助:-)

您可以在 Controller 中插入断点来检查其他参数的值。

HTML

<div>
<label>To Email</label>
<input type="text" id="To" class="form-control" />
<br />
<label>Cc Email</label>
<input type="text" id="CC" class="form-control" />
<br />
<label>Subject</label>
<input type="text" id="Subject" class="form-control" />
<br />
<label>Desc</label>
<textarea id="Desc" class="form-control"></textarea>
<br />
<label>Choose File</label>
<input type="file" style="width: 86% !important;" class="form-control" id="fileUpload" />
<br />
<input type="button" onclick="SaveFile()" class="btn btn-primary" value="Save" />

JS

function SaveFile() {
var ToEmail = $("#To").val();
var CcEmail = $("#CC").val();
var Subject = $("#Subject").val();
var Desc = $("#Desc").val();

var fileUploaded = $("#fileUpload").get(0);
var files = fileUploaded.files;
var fileData = new FormData();
for (var i = 0; i < files.length; i++) {
fileData.append(files[i].name, files[i]);
}

fileData.append("ToEmail", ToEmail);
fileData.append("CcEmail", CcEmail);
fileData.append("Subject", Subject);
fileData.append("Desc", Desc);

$.ajax({
url: "@Url.Action("UploadAndSaveFile", "Employee")",
type: "POST",
dataType: "json",
contentType: false,
processData: false,
data: fileData,
success: function (data) {
$("#fileUpload").val('');
},
error: function (response) {
alert("File uploading failed due to an error. Please Try again!");
}

});

}

Controller 代码

 [HttpPost]
public JsonResult UploadAndSaveFile(string ToEmail, string CcEmail, string Subject, string Desc)
{
if (Request.Files.Count > 0)
{
// Get all files from Request object
HttpFileCollectionBase files = Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFileBase file = files[i];
byte[] fileContent = new byte[file.ContentLength];
file.InputStream.Read(fileContent, 0, Convert.ToInt32(file.ContentLength));
string Filename = file.FileName;
string extension = Path.GetExtension(file.FileName);
}
}
return Json("", JsonRequestBehavior.AllowGet);
}

关于javascript - HttpPostedFileBase 每次都返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com