I need to use uploadify to allow users to upload files which will be stored in Amazon S3.
I believe it is possible to upload directly to S3 but I also need to do some processing on my server.
What I need to do is generate a unique filename for the video before upload and then save the filename to my database after a successful upload.
Can anyone provide any insight on how to accomplish this?
We also do this in our application.
What I need to do is generate a unique filename for the video before upload and then save the filename to my database after a successful upload.
I think you've got that the wrong way around.
We have a generic Post table where we store all types of Posts, of which Photo is one.
So when a user uploads a photo, we first save the photo so it get's a unique identifier (e.g the IDENTITY field in the DB - PK), then we use that as the filename.
That way we can use convention to render the S3 links - e.g /s3.amazonaws.com/yourbucket/photoid.jpg.
So your controller would look something like this:
// might need to change to HttpPostedFileBase[] for multiple file uploads
[HttpPost]
public ActionResult Upload(HttpPostedFileBase, string photoName)
{
var stream = httpPostedFileBase.InputStream;
var photo = new Photo { Name = photoName };
repository.Save(photo);
s3service.Upload(stream, photo.Id);
}
Are you allowing the user to enter a name/tags/other input of some sort? If so, you could create unique slugs on the server based on this name, then use that as the filename (good for SEO).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With