Опитвам се да намеря начин да кача изображение от мобилния телефон на отдалечен сървър с помощта на Icenium+Cordova (мобилен) и ASP.NET.
Опитах се да използвам командата FileTransfer(), докато предоставях адрес на отдалечена уеб услуга, но без успех. Използвам симулатор на Icenium и Visual Studio, за да тествам кода локално.
Това, от което се нуждая, е примерен код на мобилната (Javascript) и сървърната (.NET) страна, за да поддържа тази комуникация за качване на изображения. Благодаря.
Кодът, който използвам в момента:
function uploadPhoto(imageURI) {
var options = new FileUploadOptions();
options.fileKey="image_file"; // recFile
var imagefilename = Number(new Date())+".png";
options.fileName=imagefilename;
options.mimeType= "text/plain";
options.chunkedMode = false;
params = {
val1: "some value",
val2: "some other value"
};
options.params = params;
var ft = new FileTransfer();
ft.upload(imageURI,"http://127.0.0.1:1691/ImageWebService.asmx/SaveImage", success, fail, options);
}
От страната на сървъра:
[WebMethod]
[ScriptMethod]
public string SaveImage()
{
try
{
HttpPostedFile file = HttpContext.Current.Request.Files[0];
if (file == null)
return "0";
HttpPostedFile file =
HttpContext.Current.Request.Files[0];
string targetFilePath = "c:\\" + file.FileName;
file.SaveAs(targetFilePath);
}
catch (Exception ex)
{
}
return "1";
}
Имам също:
<access origin="*" />
В config.xml за cordova.
Забележка: Тествах уеб услугата за качване на изображения, използвайки стандартния контрол за качване на файлове, използвайки „Advanced Rest Client“ и тя върна 200 OK.
Освен това, аз съм блокиран и мога да намеря начин да кача успешно изображение на отдалечения сървър. Отворен съм да използвам друг метод, но мисля, че използването на собствения Cordova FileTransfer() е по-безопасният начин да направя това, ако искам най-добрата сравнимост.