作爲一個例子,我已經轉換canvas元素與重新調整大小的圖像,並張貼成現在編碼爲如何爲Base64字符串轉換爲圖像的二進制文件,並保存到服務器
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD...
這是一個隱藏的輸入字段值然後發佈到我需要將此字符串轉換爲圖像並保存到服務器上的同一頁面。
代碼文件的背後(upload.aspx)
protected void btnUpload_Click(object sender, EventArgs e)
{
HttpPostedFile filePosted = Request.Files["newinput"];
string base64String = filePosted.ToString();
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
//I DONT KNOW HOW TO WRITE ABOVE INTO THE SaveAs CONDITION BELOW
if (filePosted != null && filePosted.ContentLength > 0)
{
string fileNameApplication = Path.GetFileName(filePosted.FileName);
string fileExtensionApplication = Path.GetExtension(fileNameApplication);
// generating a random guid for a new file at server for the uploaded file
string newFile = Guid.NewGuid().ToString() + fileExtensionApplication;
// getting a valid server path to save
string filePath = Path.Combine(Server.MapPath("~/Assets/") + Request.QueryString["id"] + "/", newFile);
if (fileNameApplication != String.Empty)
{
filePosted.SaveAs(filePath);
}
}
我敢肯定,我需要保存在服務器上之前,這個圖象 - 轉換爲二進制文件,但我不能完全得到我需要怎麼修改上面的代碼。有任何想法嗎?保存到服務器的代碼不起作用。
一旦我將它轉換爲圖像並將其名稱更改爲上述內容 - 我將它通過LINQ存儲回數據庫 - 並附加了一個URL。
任何幫助將不勝感激。
從技術上講,沒有這不是答案,因爲我試過,代碼不起作用,所以我張貼的原因。 – Chris
這裏有任何錯誤/異常? –
我不太明白如何添加 '代碼' File.WriteAllBytes(Path.Combine (@ 「d:\ APPS \ PJP_TEST \ PJPTest \網絡\ ImageStorage \」 ,imgName ) ,imageBytes ) ; – Chris