我工作的ASP.NET应用程序的核心,现在是上传图片。图像通过请求作为Stream
传递给控制器。然后,我从Stream
创建一个Image
对象,但您可以直接从中读取数据。也就是说,您可能想尝试创建一个Image
对象以确认数据确实代表有效的图像。
下面是从视图的脚本的一些相关代码:
function uploadImage()
{
// This is a file upload control in a hidden div.
var image = $("#imageFile");
if (image[0].files.length > 0)
{
var formData = new FormData();
formData.append(image[0].files[0].name, image[0].files[0]);
var xhr = new XMLHttpRequest();
xhr.open("POST", "@Url.Content("~/events/uploadimage")");
xhr.send(formData);
xhr.onreadystatechange = function()
{
if (xhr.readyState === 4 && xhr.status === 200)
{
var response = JSON.parse(xhr.responseText);
if (response.saveSuccessful)
{
// ...
} else
{
window.location.replace("@Url.Content("~/error")");
}
}
}
xhr.onerror = function(err, result)
{
alert("Error: " + err.responseText);
}
}
}
我在与一些jQuery的,做繁重,但还没有得到那么远,替换该代码的过程很。
下面是从操作一些相关代码:
[HttpPost]
public IActionResult UploadImage()
{
var requestForm = Request.Form;
StringValues tempImageFileNames;
string tempImageFileName = null;
string imageUrl = null;
var saveSuccessful = true;
var requestFiles = requestForm.Files;
if (requestFiles.Count > 0)
{
// A file has been uploaded.
var file = requestFiles[0];
using (var stream = file.OpenReadStream())
{
try
{
using (var originalImage = System.Drawing.Image.FromStream(stream))
{
// Do whatever you like with the Image here.
}
}
catch (Exception)
{
saveSuccessful = false;
}
}
}
if (saveSuccessful)
{
return Json(new {saveSuccessful, tempImageFileName, imageUrl});
}
else
{
return Json(new {saveSuccessful});
}
}
对不起,它并没有在第一,你VB代码后是发生在我,这是C#。希望你仍然可以得到这个想法,如果有人不喜欢这个答案,我会采取这种做法。