私たちもアプリケーションでこれを行います。
アップロードする前に動画の一意のファイル名を生成し、アップロードが成功したらファイル名をデータベースに保存する必要があります。
私はあなたが間違った方法を持っていると思います。
私たちはすべての種類の投稿を格納するPost
という一般的なテーブルを持っています。そのうちPhoto
は1です。
したがって、ユーザーが写真をアップロードするときは、最初に写真を保存して固有の識別子(DB-PKのIDENTITYフィールド)を取得してからファイル名として使用します。
このようにして、S330リンク(例:/s3.amazonaws.com/yourbucket/photoid.jpg)をレンダリングするには、の規約を使用できます。
だからあなたのコントローラは、このようなものになります。
// 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);
}
をユーザーが何らかのの名前/タグ/他の入力に入ることを可能にしていますか?もしそうなら、この名前に基づいてサーバー上にユニークなスラッグを作成し、それをファイル名として使用することができます(SEOに適しています)。
アップロードの意味は何ですか? –
@Ramhoundファイルをサーバーにアップロードするためのajaxフラッシュコンポーネントで、マルチファイルの選択が可能です。 – mattmanser