【发布时间】:2019-04-28 12:05:06
【问题描述】:
我正在尝试通过 ajax 发送一个文件,但无法保存它,有人帮助我,我已经尝试了几个序列化但没有一个有效。 acontinuauacion 我向您展示了客户端代码和服务器端,如果您能帮助我,如果我做得对,或者 [webmethod] 有另一种方法可以做到这一点,那将会很有用
$("#btnCargar").on("click", function() {
var filese = $("#fileComparendo")[0].files[0];
var formData = new FormData();
formData.append("archivo", filese);
$.ajax({
type: "POST",
url: "<%=ResolveUrl("addcomp.aspx/prueba")%>",
data: formData,
contentType: false,
processData: false,
success: function(data) {
alert(data);
console.log("CallWM" + data.d);
alert(data.d);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
var err = eval("(" + XMLHttpRequest.responseText + ")");
alert(err.Message)
console.log("Ajax Error!");
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="row">
<div class="col-md-4">
<input type="text" id="txtPrueba" class="form-contrav" />
<input type="file" class="file-name" id="fileComparendo" />
<input type="button" class="btn btn-danger" value="Cargar" id="btnCargar" />
</div>
</div>
[WebMethod]
public static string prueba(HttpContext archivo)
{
// var recipient = Request["Recipient"];
var re = HttpContext.Current.Request.Form["archivo"];
archivo.Response.ContentType = "text/plain";
string dirFullPath = HttpContext.Current.Server.MapPath("~/files/");
string[] files;
int numFiles;
files = System.IO.Directory.GetFiles(dirFullPath);
numFiles = files.Length;
numFiles = numFiles + 1;
string str_image = "";
foreach (string s in archivo.Request.Files)
{
HttpPostedFile file = archivo.Request.Files[s];
string fileName = file.FileName;
string fileExtension = file.ContentType;
if (!string.IsNullOrEmpty(fileName))
{
fileExtension = Path.GetExtension(fileName);
str_image = "MyPHOTO_" + numFiles.ToString() + fileExtension;
string pathToSave_100 = HttpContext.Current.Server.MapPath("~/files/") + str_image;
file.SaveAs(pathToSave_100);
}
}
archivo.Response.Write(str_image);
return "hola";
}
【问题讨论】: