C# - Uploading File To Amazon S3 Using File Upload Control
Dec 5, 2010
I've dug around in the SDK and managed to connect to my instance of S3, go into my bucket and create an empty file, but can't figure out how to take a file from my computer and upload it. If I have dragged a file upload control onto the designer surface how do I set the properties for it in the code behind?(If I absolutely need to have a 3rd party uploader which should I use). Here is the code I have so far.
static string bucketName = "myBucket";
static string keyName = "sampleKey";
static AmazonS3 client;
protected void Page_Load(object sender, EventArgs e)
{
string accessKeyID = System.Configuration.ConfigurationManager.AppSettings["AWSAccessKey"];
string secretAccessKeyID = System.Configuration.ConfigurationManager.AppSettings["AWSSecretKey"];
using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID))
{
// simple object put
PutObjectRequest request = new PutObjectRequest();
request.WithContentBody("this is a test")
.WithBucketName(bucketName)
.WithKey(keyName);
S3Response response = client.PutObject(request);
response.Dispose();
// put a more complex object with some metadata and http headers.
PutObjectRequest titledRequest = new PutObjectRequest();
titledRequest.WithMetaData("title", "the title")
.WithContentBody("this object has a title")
.WithBucketName(bucketName)
.WithKey(keyName);
using (S3Response responseWithMetadata = client.PutObject(request))
{
WebHeaderCollection headers = response.Headers;
foreach (string key in headers.Keys)
{
Console.WriteLine("Response Header: {0}, Value: {1}", key, headers.Get(key));
}
}
}
}
I'd like to allow users to upload a .pdf file via the file upload control (if that's the best method), save the file to the db and then retrieve it so they can click on a link and open the .pdf they've uploaded. I've been looking for a tutorial on how to do this but keep running into methods of saving the file directly on the server in a directory, not in SQL server (using Linq and VB by the way)
I am using the async file upload control to upload to a image file. I want the user to upload only jpg files. And for that I am checking the uploadedfile content type in server side, after the upload complets. I wanna check this, before upload starts. There is one javascript method
function startUpload(sender, args){}
but how to access the content type of the file selected by user.
I have an asp.net panel having various controls including gridview. I have converted this panel into pdf and attached it as an email attachment using memory stream. Everything is working fine. Now I have an File upload control outside panel through which I have to attach a file and send it in mail along with the already attached panel. But I am unable to figure out how to do it.
I want to upload files to the web servers from the client machines.
Can i upload a file on a network share folder using file upload control?
I would like to create a share folder on a file server sitting next to the web server. If i upload the file from the network share folder instead of uploading it from the client machine does it make any difference?
Will the file be stored in a temporary location before copying to the final destination? Where will be the file stored in this case of uploading it from share folder?
I have programmed a script to upload image files from users computer to my server. It works fine for up to about 4MB files, larger have the 'connection reset' error which I believe can be resolved easily in the web.config file.
Anyway, I would like to show a status bar to tell the user how much of the file has been uploaded so they don't try repeatedly clicking upload button thinking nothings working -
i use to upload a photo to a server this piece of code:
uplTheFile.PostedFile.SaveAs(Path);
But the Path can't be relative (like ~\Photos\image.jpg) .
I was thinking of getting the location of the .aspx file from where i upload the image and attach \Photos\image.jpg to it, but i don't know how to get the address (location ) of my .aspx page on the server .
I have an interesting challenge. My application uses a third party's services and one of the functions is to upload video files to Amazon S3. The current solution I've implemented uses a simple form with a POST action set to a URL on Amazon's system. The issue I have is that because the form posts to Amazon, I have no way of doing any type validations before the user clicks to upload the file i.e. checking file type, file size, etc.
However, I really do NOT want to set up my logic so that the file is first uploaded to my server then to Amazon because these are huge files and we'll end up using costly bandwidth on both ends -- our server and Amazon S3.
P.S. To be perfectly honest, I'm not that pleased with the current solution where it's a simple HTML form with a simple post to Amazon. However, because Amazon is so picky about all the hidden fields in my asp.net page, I had to strip everything off the page -- including form runat"server" because the minute I have this, I end up with a hidden field for ViewState -- even if I completely turn off ViewState. There's always something left as a hidden field and Amazon was generating an error because of this.
Ideally, I'd love to be able to do an HttpWebRequest in code behind so that I can have the functions of a web form back and do some pre-upload work but I'm not sure how to upload the file to a remote destination without putting the file on my server first.
I am getting an error when i am uploading an image with the asynchronous file upload the error is " Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "AjaxControlToolkit.Properties.Resources.NET4.resources" was correctly embedded or linked into assembly "AjaxControlToolkit" at compile time, or that all the satellite assemblies required are loadable and fully signed.
Description: An unhandled exception occurred during the execution of the current web request. review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "AjaxControlToolkit.Properties.Resources.NET4.resources" was correctly embedded or linked into assembly "AjaxControlToolkit" at compile time, or that all the satellite assemblies required are loadable and fully signed.
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 am planning to create a web page with the name of the student, course,pic and the resume to be uploaded by the user for specified students...
If I upload the resumes of students with same name how to differentiate. Looking for creating a name of the file name randomly as next I'm planning to retrieve the resume via search function to download and view the resumes....
Saving the resumes with same name with differentiate or randomly to save the files with new file name....
I hv a file upload control which save files in folder upload_html. When I upload file of same name which already exists upload_html folder it does't replace that file.........
I want that file to be replaced from that folder.............
Our problem/question revolves around an upload control that loses the selected file (goes blank) when a postback control is used (in this case, the dropdown list posts). Any insight into what we are doing wrong or how we can fix this? Below is our code and a summary of the problem.
i have problem in uploading 2gb video file using file upload control in asp.net, i have limit the maximum file size in web config file then also it shows error any remedy for that...
is it possible to automatically populate a file upload control's file for automated testing and server stress. I have one upload control (that simply brings up the browse and selects the file) and a button that uploads the selected fileupload control's file. Is it possible to give the file upload control a file pather "C:myImage.jpg" and submit the file by pressing the upload butto:
how to filter the file type with the file upload control in asp.net & c#.net for example on clicking the browse button of the file upload control ,it should open browse file dialog with only excel file types.
I have form for update product in which I have file upload control, in update product form i have retrieved all other details of product in appropriate text boxes like product name,price,etc. I also want to retrieve name and path of product image in file upload control which is uploaded using add product form. Is it possible to set path of uploaded file to file upload control.
I wrote some code to upload files to amazon S3, if I put a full file path manually It successfully uploads the file from my computer. What I'm trying to do is use a file upload control and store the full path in a variable so that I can use it for my amazon method. Ive read everywhere it seems that the browser won't let you get the full file path for security reasons.
How can I get the full file path? Should I just store the files on my webserver and point my amazon method to the server path, and then use the file upload control to tell it what the filename is?
I am using AsyncFileUpload of ajax toolkit of asp.net. But while uploading a file of size 0kb, it gives me error "Unhandled exception: the file attached is empty". Is there any solution for uploading a blank file.