So I'm working on a site that is going to need a file upload control where the user would be able to upload an image, and then the page would postback causing the image to appear for their viewing (before they submit the data to the database, the image is being stored as type image). What I do now is have my own private web form where people send me their image, I format it accordingly and use the following simple code to upload it:
byte[] newimage = fileUpImgFile.FileBytes;
var myDataTable = (from item in context.TypeSet where item.Number == txtBxNumber.Text.Trim() select item).ToList();
foreach (Type item in myDataTable)
{
item.Photo = newimage;
}
context.SaveChanges();
Which works, but in this case, it would only work if the record exists already in the database so the person would have to save the data, then go back in and upload the image (inconvenient and inefficient). Is there a way to upload it, store it in memory, and then display it, without saving it to the database?
how can i display the image at run time using file upload ? plzz give me the code .. i can write the code for image saving in the folder but they should be displayed at runtime corresponding to the id generated.
What are the options for handling file uploads to reduce the memory footprint? Is there a way to upload in chunks? Is there a way to stream upload directly to disk instead of loading entire file in server memory?
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 want to access one image file residing in C: of the client's machine. I know with the help of file upload control (or say input type=file), this would be easy. Due to nature of my application (Its a KIOSK application), user is not expected to select file. I am just wondering how should I implement reading file without using file upload control. I want to store this file in Images folder of server. I am beginner to WCF. Should I look towards WCF?
I'm trying to allow the user to upload an image to the server (this part works) and display it on the next page (this part doesn't). I've got two files, imageuploadtext.aspx, which has the following code:
[Code]....
And the second file is imageloadtext.aspx, which has this short code:
[Code]....
As I said, the upload works fine and the file is received. But I can't get the source to display the correct image on the second page. Could it be to do with the fact the first page is VB and the second is C#? If so what code would I replace the C# with for it to work with VB? By the way, I'm currently getting a ";" expected on the image source line which I'm not sure where it goes, that might be it?
Suppose I have two page admin and home,in admin page one upload control and in home page gridview,I will select the image and upload from admin and after uploading show the image in home page gridview ...
I have a FileUpload Control on a Content page of a Master Page. I need to upload an image and display it before user can upload it. Can someone advice (with example if possible) what FileUpload event will notify me that a file was selected so I can than display it? Is this the best way to perfom this task?
i want to load image into image control emmidiatly when i am uploading it by using fileupload control that means when i am uploading a file i display on the page immediately on page in image control.
I have this file upload control. I have created a folder name "images" in my visual studio project. I want to upload image into this folder. BUT, when I am uploading a image, system does not show any error. It is uploading the image. But I cannot see it into the "images" folder. But, when I browse the folder from my computer like if I go to c:/my documents/vs project/my project/images. i can see the uploaded image. Then why the image is not visible from my visual studio?? as the image is not visible in my visual studio project, user can not see the uploaded image. my code is as below:
I need displaying my image file stored from my database into the image control. I've had read some articles and watch video tutorial which there were perfectly working and I followed it but I wasn't able to make it work. The image control just displayed blank. I used Generic Handler to retrieve the image file from my database based on the articles and tutorials I've got. here are my codes below:
Generic Handler:
Code: <%@ WebHandler Language="C#" Class="ShowImage" %> using System; using System.Configuration; using System.Drawing; using System.Drawing.Imaging;
I have a page which displays details and a pictures of employees. The details are stored in a SQL database and the images are on the server. How can I set a default Image to display (e.g. an Image saying "Awaiting Image") if an employee picture is missing?
I can't use NullImageUrl as the Images are not stored in the database. I can't use the solution found on [URL] as an ImageField does not accept an ID attribute.