2015-06-06 2 views
0

У меня есть мой сайт, размещенный на сервере, и у меня есть папка с их именованными изображениями. Я получаю строку base64 и конвертирую ее в изображение и сохраняю его в своем локальном каталоге и он работает отлично.сохранить изображение в папке на вашем сайте без файловой загрузки

[WebMethod] 
public void UploadPics(String imageString) 
{ 
    //HttpRequest Request = new HttpRequest(); 
    //HttpPostedFile filePosted = new HttpPostedFile(); 
    string base64String = imageString; 

    // 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); 
    //string newFile = Guid.NewGuid().ToString() + fileExtensionApplication; 
    string filePath = "C:/Users/MUWebServices/App_Code/images/pic1.jpg"; 
    image.Save(filePath, ImageFormat.Jpeg);  
} 

Но когда я использую

string filePath = "http://mywebsite.com/images/pic1.jpg"; 
    image.Save(filePath, ImageFormat.Jpeg); 

получил следующие исключения "System.ArgumentException: URI форматы не поддерживаются".

Как сохранить изображения в папке веб-сайта. Я нашел некоторые решения, но все использовали fileUpload, и я не могу использовать это, потому что я получаю строку изображения base64 от android и использую этот веб-сервис для сохранения изображений.

ответ

1

Вам необходимо загрузить файл. Поскольку вы открываете соединение TCP/IP с другим компьютером, вам необходимо следовать протоколу, чтобы записать этот файл в этот удаленный каталог. Позвольте мне объяснить вам, как Роберт Хайнлайн однажды сказал

Тот, кто считает, протокол неважным никогда не имел дело с кошкой. -Роберт Хайнлайн

Шутки обособленно вам все равно придется использовать загрузку файлов (вы можете сделать это с помощью AsyncTask. Удаленный компьютер, скорее всего, не использовать URI для того же.

+0

, но я делаю приложение в андроиде, поэтому я не могу использовать загрузку файла:/ - это любой другой способ загрузки моего изображения. –

+0

Вы должны асинхронно загружать изображение. См. http://androidexample.com/Upload_File_To_Server_-_Android_Example/index. php? view = article_discription & aid = 83 & aaid = 106 – Boggartfly

+0

сделал это окончательно :) использовали строку filePath = Server.MapPath ("~/images/pic1.jpg"); и запускал его прямо на моем веб-сайте, а не в localhost, и это сработало: D –