我工作的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#。希望你仍然可以得到這個想法,如果有人不喜歡這個答案,我會採取這種做法。