- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello everyone,
I'm trying to upload a file through asp.net webservice but I'm not able to make it work...
Here is the code of my asp.Net Webservice in C#:
using System;
using System.Data;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.IO;
namespace Uploader
{
/// <summary>
/// This web method will provide an web method to load any
/// file onto the server; the UploadFile web method
/// will accept the report and store it in the local file system.
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class FileUploader : System.Web.Services.WebService
{
[WebMethod]
public string UploadFile(byte[] f, string fileName)
{
// the byte array argument contains the content of the file
// the string argument contains the name and extension
// of the file passed in the byte array
try
{
// instance a memory stream and pass the
// byte array to its constructor
MemoryStream ms = new MemoryStream(f);
// instance a filestream pointing to the
// storage folder, use the original file name
// to name the resulting file
FileStream fs = new FileStream
(System.Web.Hosting.HostingEnvironment.MapPath("~/TransientStorage/") +
fileName, FileMode.Create);
// write the memory stream containing the original
// file as a byte array to the filestream
ms.WriteTo(fs);
// clean up
ms.Close();
fs.Close();
fs.Dispose();
// return OK if we made it this far
return "OK";
}
catch (Exception ex)
{
// return the error message if the operation fails
return ex.Message.ToString();
}
}
}
}
Do anyone have some sample working code for Intel XDK to work with this webservice ?
I'm not posting my code here to don't make any conflict because it's a big mess I have tried a lot of codes...
Thanks!
- Tags:
- HTML5
- Intel® XDK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try this, it handles images and video, I also use the NRECO video tools to create video thumbnails and image manipulation during the upload.
<WebMethod()> _
Public Function SaveFiles() As String
Try
Dim FileCount As Integer = 0
FileCount = HttpContext.Current.Request.Files.Count
For i As Integer = 0 To FileCount - 1
myfile = HttpContext.Current.Request.Files(i)
FileName = HttpContext.Current.Request.Files(i).FileName
If FileName.EndsWith(".jpg") Then
FileName += ".jpg"
End If
If FileName.EndsWith(".mov") Then
FileName += ".mov"
End If
If FileName.EndsWith(".mp4") Then
FileName += ".mp4"
End If
Dim parameters As NameValueCollection = HttpContext.Current.Request.Params
Dim newfileparam() As String = parameters.GetValues("newfile")
newfilename += newfileparam(0).ToString
Dim newpathparam() As String = parameters.GetValues("projpath")
newfilepath += newpathparam(0).ToString
Dim Rotation() As String = parameters.GetValues("rotation")
Rot = Rotation(0)
writefile("Rotation=" & Rot)
If (Not Directory.Exists(newfilepath)) Then
Directory.CreateDirectory(newfilepath)
End If
Next
newfileloc = Path.Combine(newfilepath, newfilename)
writefile("File uploaded: " + newfileloc)
myfile.SaveAs(newfileloc)
If FileName.EndsWith(".mp4") Then
Dim ffMpeg = New NReco.VideoConverter.FFMpegConverter()
Dim ThumbFilename As String() = Split(FileName, ".")
Dim newpath As String = newfilepath & "\" & ThumbFilename(0) & "_thm.jpg"
ffMpeg.GetVideoThumbnail(newfileloc, newpath, 1)
writefile("Video Thumbnail Created: " + newpath)
Dim RotThumb As Image = System.Drawing.Image.FromFile(newpath)
If Rot = 90 Then
RotThumb.RotateFlip(RotateFlipType.Rotate90FlipXY)
End If
If Rot = 180 Then
RotThumb.RotateFlip(RotateFlipType.Rotate180FlipXY)
End If
If Rot = 270 Then
RotThumb.RotateFlip(RotateFlipType.Rotate270FlipXY)
End If
RotThumb.Save(newpath, ImageFormat.Jpeg)
RotThumb.Dispose()
'writefile("Thumbnail Rotated: " + newpath)
End If
If FileName.EndsWith(".jpg") Then
Dim RotImage As Image = System.Drawing.Image.FromFile(newfileloc)
If Rot = 90 Then
RotImage.RotateFlip(RotateFlipType.Rotate90FlipXY)
End If
If Rot = 180 Then
RotImage.RotateFlip(RotateFlipType.Rotate180FlipXY)
End If
If Rot = 270 Then
RotImage.RotateFlip(RotateFlipType.Rotate270FlipXY)
End If
RotImage.Save(newfileloc, ImageFormat.Jpeg)
RotImage.Dispose()
Dim ThumbImageName As String = Path.GetFileNameWithoutExtension(newfileloc)
Dim ThumbPath As String = Path.GetDirectoryName(newfileloc) & "\" & Path.GetFileNameWithoutExtension(newfileloc) & "_thm.jpg"
CreateThumbnail(newfileloc, ThumbPath)
End If
Return "success"
Catch ex As Exception
writefile("****Error: " + ex.Message.ToString + "****")
Return "fail"
End Try
End Function
And the Javascript uses phonrgap/cordova file transfer plugin.
function doUploadPics(){
// upload pics
var upStatus = document.getElementById("upStatus");
upStatus.innerHTML = 'Status: Uploading Photos';
document.getElementById('uploaderImage').src = "./styles/images/uploadpics.png";
gvUploadfile = 0;
gvUploadTotal = 0;
var fType = 'file';
var ft = new FileTransfer();
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100);
//alert("Uploading " + params.newfile + " " + perc + "% loaded...");
if(perc <100) {
upStatus.innerHTML = "Uploading " + fType +" ( " + perc + "% loaded )";
document.getElementById('uploaderImage').src = "./styles/images/uploadpics.png";
} else {
upStatus.innerHTML = 'Status: Busy... ' ;
document.getElementById('uploaderImage').src = "./styles/images/eggtimer.png";
}
} else {
upStatus.innerHTML = "Uploading " + params.newfile + "...";
}
}
// upload photos
for (i=1;i<=gvNumpics;i++){
// fType = 'Photo';
gvUploadfile += 1;
// alert('uploading ' + gvUploadfile);
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName = 'pic' + gvUploadfile +'.jpg';
options.mimeType="image/jpeg";
var params = {};
params.newfile = 'pic' + gvUploadfile +'.jpg';
params.projpath = gvDataPath;
params.rotation = 0;
if(device.platform == 'iOS') {
params.rotation = 270;
}
//alert(params.projpath);
options.params = params;
ft.upload( encodeURI(picPaths), encodeURI("http://myURL/service.asmx/SaveFiles"), ftpwin, ftpfail, options);
}
// video uploads
upStatus.innerHTML = 'Status: Uploading Videos';
gvUploadfile = 0;
for (i=1;i<=gvNumvids;i++){
// fType = 'Video';
gvUploadfile += 1;
// alert('uploading ' + gvUploadfile);
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName = 'vid' + gvUploadfile +'.mp4';
options.mimeType="video/*";
var params = {};
params.newfile = 'vid' + gvUploadfile +'.mp4';
params.projpath = gvDataPath;
//alert(params.projpath);
params.rotation = 0;
if(device.platform == 'iOS') {
params.rotation = 270;
}
options.params = params;
//alert('callining upload video');
// ft = new FileTransfer();
ft.upload( encodeURI(vidPaths), encodeURI("http://myURL/service.asmx/SaveFiles"), ftpwin, ftpfail, options);
//alert('called');
}
}
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try this, it handles images and video, I also use the NRECO video tools to create video thumbnails and image manipulation during the upload.
<WebMethod()> _
Public Function SaveFiles() As String
Try
Dim FileCount As Integer = 0
FileCount = HttpContext.Current.Request.Files.Count
For i As Integer = 0 To FileCount - 1
myfile = HttpContext.Current.Request.Files(i)
FileName = HttpContext.Current.Request.Files(i).FileName
If FileName.EndsWith(".jpg") Then
FileName += ".jpg"
End If
If FileName.EndsWith(".mov") Then
FileName += ".mov"
End If
If FileName.EndsWith(".mp4") Then
FileName += ".mp4"
End If
Dim parameters As NameValueCollection = HttpContext.Current.Request.Params
Dim newfileparam() As String = parameters.GetValues("newfile")
newfilename += newfileparam(0).ToString
Dim newpathparam() As String = parameters.GetValues("projpath")
newfilepath += newpathparam(0).ToString
Dim Rotation() As String = parameters.GetValues("rotation")
Rot = Rotation(0)
writefile("Rotation=" & Rot)
If (Not Directory.Exists(newfilepath)) Then
Directory.CreateDirectory(newfilepath)
End If
Next
newfileloc = Path.Combine(newfilepath, newfilename)
writefile("File uploaded: " + newfileloc)
myfile.SaveAs(newfileloc)
If FileName.EndsWith(".mp4") Then
Dim ffMpeg = New NReco.VideoConverter.FFMpegConverter()
Dim ThumbFilename As String() = Split(FileName, ".")
Dim newpath As String = newfilepath & "\" & ThumbFilename(0) & "_thm.jpg"
ffMpeg.GetVideoThumbnail(newfileloc, newpath, 1)
writefile("Video Thumbnail Created: " + newpath)
Dim RotThumb As Image = System.Drawing.Image.FromFile(newpath)
If Rot = 90 Then
RotThumb.RotateFlip(RotateFlipType.Rotate90FlipXY)
End If
If Rot = 180 Then
RotThumb.RotateFlip(RotateFlipType.Rotate180FlipXY)
End If
If Rot = 270 Then
RotThumb.RotateFlip(RotateFlipType.Rotate270FlipXY)
End If
RotThumb.Save(newpath, ImageFormat.Jpeg)
RotThumb.Dispose()
'writefile("Thumbnail Rotated: " + newpath)
End If
If FileName.EndsWith(".jpg") Then
Dim RotImage As Image = System.Drawing.Image.FromFile(newfileloc)
If Rot = 90 Then
RotImage.RotateFlip(RotateFlipType.Rotate90FlipXY)
End If
If Rot = 180 Then
RotImage.RotateFlip(RotateFlipType.Rotate180FlipXY)
End If
If Rot = 270 Then
RotImage.RotateFlip(RotateFlipType.Rotate270FlipXY)
End If
RotImage.Save(newfileloc, ImageFormat.Jpeg)
RotImage.Dispose()
Dim ThumbImageName As String = Path.GetFileNameWithoutExtension(newfileloc)
Dim ThumbPath As String = Path.GetDirectoryName(newfileloc) & "\" & Path.GetFileNameWithoutExtension(newfileloc) & "_thm.jpg"
CreateThumbnail(newfileloc, ThumbPath)
End If
Return "success"
Catch ex As Exception
writefile("****Error: " + ex.Message.ToString + "****")
Return "fail"
End Try
End Function
And the Javascript uses phonrgap/cordova file transfer plugin.
function doUploadPics(){
// upload pics
var upStatus = document.getElementById("upStatus");
upStatus.innerHTML = 'Status: Uploading Photos';
document.getElementById('uploaderImage').src = "./styles/images/uploadpics.png";
gvUploadfile = 0;
gvUploadTotal = 0;
var fType = 'file';
var ft = new FileTransfer();
ft.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
var perc = Math.floor(progressEvent.loaded / progressEvent.total * 100);
//alert("Uploading " + params.newfile + " " + perc + "% loaded...");
if(perc <100) {
upStatus.innerHTML = "Uploading " + fType +" ( " + perc + "% loaded )";
document.getElementById('uploaderImage').src = "./styles/images/uploadpics.png";
} else {
upStatus.innerHTML = 'Status: Busy... ' ;
document.getElementById('uploaderImage').src = "./styles/images/eggtimer.png";
}
} else {
upStatus.innerHTML = "Uploading " + params.newfile + "...";
}
}
// upload photos
for (i=1;i<=gvNumpics;i++){
// fType = 'Photo';
gvUploadfile += 1;
// alert('uploading ' + gvUploadfile);
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName = 'pic' + gvUploadfile +'.jpg';
options.mimeType="image/jpeg";
var params = {};
params.newfile = 'pic' + gvUploadfile +'.jpg';
params.projpath = gvDataPath;
params.rotation = 0;
if(device.platform == 'iOS') {
params.rotation = 270;
}
//alert(params.projpath);
options.params = params;
ft.upload( encodeURI(picPaths), encodeURI("http://myURL/service.asmx/SaveFiles"), ftpwin, ftpfail, options);
}
// video uploads
upStatus.innerHTML = 'Status: Uploading Videos';
gvUploadfile = 0;
for (i=1;i<=gvNumvids;i++){
// fType = 'Video';
gvUploadfile += 1;
// alert('uploading ' + gvUploadfile);
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName = 'vid' + gvUploadfile +'.mp4';
options.mimeType="video/*";
var params = {};
params.newfile = 'vid' + gvUploadfile +'.mp4';
params.projpath = gvDataPath;
//alert(params.projpath);
params.rotation = 0;
if(device.platform == 'iOS') {
params.rotation = 270;
}
options.params = params;
//alert('callining upload video');
// ft = new FileTransfer();
ft.upload( encodeURI(vidPaths), encodeURI("http://myURL/service.asmx/SaveFiles"), ftpwin, ftpfail, options);
//alert('called');
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
All right Nick! Thanks for your help ! :)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Are you downloading the plugin and installing locally or loading from the apache repos.
In XDK click on projects and Add Plugin to this project.
Select the Core Plugins File Transfer.
I have just done the same and the app compiled without an error.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nick F. wrote:
Are you downloading the plugin and installing locally or loading from the apache repos.
In XDK click on projects and Add Plugin to this project.
Select the Core Plugins File Transfer.
I have just done the same and the app compiled without an error.
Now I got it ! I was trying to import, and just now I realize that it already comes with intel !
Could you share the HTML code also that I could try make it work ?
I'm trying to figure out the follow code:
ft.upload( encodeURI(picPaths), .....
and
// upload pics
var upStatus = document.getElementById("upStatus");
upStatus.innerHTML = 'Status: Uploading Photos';
...
I could not understand the: "picPaths"
Thanks again!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
OK sorry, picPaths is a loop to upload multiple images. picPath is defined as the path to your image location.
In your HTML page you can have a label named "upStatus" and change the text to display a status message such as "Uploading Photos"
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page