Web Forms :: Upload Image From Desktop To Server Works 1 Of 10 Times?
Jul 6, 2010
I have a problem with upload a picture from desktop to a folder on server. The problem is that it seems to work about 1 of 10 times wich confuses me. Perheps something with this code is not enterily correct ?
First I check for if Pic1.jpg or Pic1.gif exists and then delete it if it exist. Then I want the uploaded picture to be named the same. Pic1.jpg if it is .jpg format or Pic1.gif if the uploaded picture has a .gif format.
I'm using a slightly modified version of Valum's upload [github link], I've modified it to upload to a database but haven't modified the javascript that it is using to get the file into the Request as an InputStream. The following line of code is failing in IE 8 but is confirmed to work in Chrome. using (Image imgInput = Image.FromStream(Request.InputStream)) The error received is "Parameter not valid". It appears to be having an issue with the Input Stream being used but it exists/has data (not sure how to validate if the data is good or not).
Page <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Upload-Pictures</h2> <div id="file-uploader"> <noscript> <p>Please enable JavaScript to use file uploader.</p> </noscript> </div> <script src="/Scripts/fileuploader.js" type="text/javascript"></script> <script type="text/javascript"> function createUploader() { var uploader = new qq.FileUploader({ element: document.getElementById('file-uploader'), action: '/Admin/FileUpload/' + <%= Model.PropertyId %>, debug: true }); } window.onload = createUploader; </script> </asp:Content> Controller [AcceptVerbs(HttpVerbs.Post)] public JsonResult FileUpload(int id) { try { byte[] newImageByteArray = GetByteArrayForResizedImage(350, Request.InputStream); byte[] thumbnailByteArray = GetByteArrayForResizedImage(150, Request.InputStream); //Add to DB } catch (Exception ex) { // This is where the exception is caught return Json(new { success = false, message = ex.Message }, "application/json"); } return Json(new { success = true }, "application/json"); } private static byte[] GetByteArrayForResizedImage(int imageSize, Stream inputStream) { byte[] imageByteArray; // For some reason in IE the inputStream here is causing it to crash using (Image imgInput = Image.FromStream(inputStream)) { //Image processing } return imageByteArray; } fileuploader.js - qq.FileUploader /** * Class that creates upload widget with drag-and-drop and file list * @inherits qq.FileUploaderBasic */ qq.FileUploader = function(o){ // call parent constructor qq.FileUploaderBasic.apply(this, arguments); // additional options qq.extend(this._options, { element: null, // if set, will be used instead of qq-upload-list in template listElement: null, template: '<div class="qq-uploader">' + '<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>' + '<div class="qq-upload-button">Upload a file</div>' + '<ul class="qq-upload-list"></ul>' + '</div>', // template for one item in file list fileTemplate: '<li>' + '<span class="qq-upload-file"></span>' + '<span class="qq-upload-spinner"></span>' + '<span class="qq-upload-size"></span>' + '<a class="qq-upload-cancel" href="#">Cancel</a>' + '<span class="qq-upload-failed-text">Failed</span>' + '</li>', classes: { // used to get elements from templates button: 'qq-upload-button', drop: 'qq-upload-drop-area', dropActive: 'qq-upload-drop-area-active', list: 'qq-upload-list', file: 'qq-upload-file', spinner: 'qq-upload-spinner', size: 'qq-upload-size', cancel: 'qq-upload-cancel', // added to list item when upload completes // used in css to hide progress spinner success: 'qq-upload-success', fail: 'qq-upload-fail' } }); // overwrite options with user supplied qq.extend(this._options, o); this._element = this._options.element; this._element.innerHTML = this._options.template; this._listElement = this._options.listElement || this._find(this._element, 'list'); this._classes = this._options.classes; this._button = this._createUploadButton(this._find(this._element, 'button')); this._bindCancelEvent(); this._setupDragDrop(); }; fileuploader.js - qq.FileUploaderBasic /** * Creates upload button, validates upload, but doesn't create file list or dd. */ qq.FileUploaderBasic = function(o){ this._options = { // set to true to see the server response debug: false, action: '/server/upload', params: {}, button: null, multiple: true, maxConnections: 3, // validation allowedExtensions: [], sizeLimit: 0, minSizeLimit: 0, // events // return false to cancel submit onSubmit: function(id, fileName){}, onProgress: function(id, fileName, loaded, total){}, onComplete: function(id, fileName, responseJSON){}, onCancel: function(id, fileName){}, // messages messages: { typeError: "{file} has invalid extension. Only {extensions} are allowed.", sizeError: "{file} is too large, maximum file size is {sizeLimit}.", minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.", emptyError: "{file} is empty, please select files again without it.", onLeave: "The files are being uploaded, if you leave now the upload will be cancelled." }, showMessage: function(message){ alert(message); } }; qq.extend(this._options, o); // number of files being uploaded this._filesInProgress = 0; this._handler = this._createUploadHandler(); if (this._options.button){ this._button = this._createUploadButton(this._options.button); } this._preventLeaveInProgress(); };
I have this code up in a live windows 2003 sp2 server. I use Hmailserver as mail server and I am not sure if this cause the problem.I am able to send email consecutively 2 time no problem, but it is always the 3rd time after I would get this error: Unable to read data from the transport connection: net_io_connectionclosed. I wait for 30 minutes I am to send email again, but only the first 2 time works. Here is my code can someone please verify my code and see if anything is wrong with it.
I have a page which uploads a file from server A to server B. The user first uploads the file to server A, where it's saved into a diretory, then once the file is safely stored there, I'm transferring it to a second server, server B, using the following code:
[code]....
So, in summary, the only difference I can see between the working case and the non-working case is the server that'ssending the file.
Iam using a file upload control for uploading files in my asp.net application. iam using the following code to impersonate the users who do not have permission for the files to upload. The code works fine for all the files, but it is not working for the files which are in desktop.
I am trying to do some code where a user will be able to upload a .JPG picture from the users computer. I have put the controls and also written the C# code wich in my eyes seems to be correct. What happens in the code is that the uploaded picture will replace the existing "TopHeader.JPG" picture.
However when I run the code after I have choosen a .JPG picture from the desktop on my computer. Nothing happens except of a postback of the page.
I wonder what I can be missing out in order to make this work. (I attach both the HTML code and the C# code, I will be happy to know what I could be missing out)
i am working on a assaignment in which i have to save the pics of my web user through fileupload control i am using this code:
<p>Dim ImgFileName As String Dim fileup As Boolean If chooseFile.FileName <> "" Then ImgFileName = chooseFile.FileName.ToString() chooseFile.SaveAs(Server.MapPath("~imagesusers") & ImgFileName) End If </P>
this code is working on local pc but when i use it on my web server (on web which is hosted ) this code is not working what is wrong in it.
uploading image from one server to another server. i am developing one website [URL] and from this website i want to upload images to another website say [URL] using asp:fileupload control... is it possible to upload file or image from localhost machine to different server using fileupload.saveas method..
how to upload image on to server having specified path name. and for each time the image path need to change.
i have some idea in my mind...
i need to use asp:fileupload control as follows
<asp:fileupload id ="fileupload1" runat ="server"/> in codebehid
how to mention file name in vb.net like fileupload1.saveas(serverpath addwith filename addwith .jpg) serverpath is fixed filename comefrom database ... like datafield-image and i need to check the image should be jpeg
Currently i have done upload image function and its saved the picture into folder in server . But if the picture has same name its unable to save the photo . How to rename the photo each time i save the photo into the server . Below is my coding .
Iam using a file upload control for uploading files in my asp.net application. iam using the following code to impersonate the users who do not have permission for the files to upload. The code works fine for all the files, but it is not working for the files which are in desktop.
Code in .cs file:
System.Security.Principal.WindowsImpersonationContext impersonationContext; impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate(); //Insert your code that runs under the security context of the authenticating user here. impersonationContext.Undo();
I am trying to select one image file from desktop with file upload control. but i am not able to get the full path of the image if it is selected from desktop. i am getting full path if the file is selected from any other place but its showing error for the desktop.
I have very basic knowledge of ASP.net. I am using following script to resize and image, but the problem is it increases the disk volume of resized image to almost 4 times or original image.
Example:
Original Image: 1024 x 769px and Disk space: 135 KB Resized Image: 600 x 380px and Disk space: 825KB Notice resized image becomes 825KB.
I am using Visual Studio 2008 and SQL Server 2005 as my back-end.I saw this topic is already introduced in StackOverflow but I have different question related to this topic.I just want to directly get the file from my server/hard-disk and save it in the database.
I need to upload and save an image onto the server. I am using an XMLHttpRequest POST to send the image to the server and calling a class named imageSave.aspx.I am finding difficulty in "catching" the image from server side (imageSave.aspx) and saving it onto the server. Does anyone please have some tips as to how this is done or maybe link to a good article or something?
On desktop application I am uploading photos and storing physically on the webserver with the help of webservice and in DB I am storing physical path of that photo.On the other hand, I want to download the images for later use at that time I am creating bytestream from the physical path and storing it in the dataset column whose datatype is VARBINARY(MAX)I can return byte array which creates the images on the client side very easily.The main problem I am facing here is, I am not able to convert the byte array into dataset's VARBINARY format.
is there any way i can make use of windows programming in my asp.net based application and i can determine if my application is running on server or desktop?