1

みんな、

自分のサイトに画像をアップロードしようとしていますが、正常に機能するようになりましたが、1つの単純な画像の機能を超えて機能を拡張する必要があります。私が見た例では、WebMatrixファイルヘルパーを使用しています(ファイルヘルパー?そうですか?まあ、input = type "file"フィールドに必要なhtmlを自動プロットするある種のヘルパーです)。次の形式のコード行:

@FileUpload.GetHtml(initialNumberOfFiles:1, allowMoreFilesToBeAdded:false, includeFormTag:false)

(IsPost)にあるコード行:

var UploadedPicture = Request.Files[0];
    if(Path.GetFileName(UploadedPicture.FileName) != String.Empty)
    {
        var ContentType = UploadedPicture.ContentType;
        var ContentLength = UploadedPicture.ContentLength;
        var InputStream = UploadedPicture.InputStream;
        Session["gMugshot"] = new byte[ContentLength];
        InputStream.Read((byte[])Session["gMugshot"], 0, ContentLength);
    }
    else
    {
        Session["gMugshot"] = new byte[0];
    }

この後、(IsPost)にさらにコードを追加すると、バイナリデータとしてデータベースに保存され、そこから画像をページに戻すことができます(実際の画像ファイルをサーバー上のフォルダーに保存し、GUIDを使用する必要はありません。などなど。バイナリデータは問題なく、占有するスペースがはるかに少ないと思います)。

jQueryを使用して画像をクリック可能にスクロールし、手動で作成されたボタンのクリックを読み取り、続いてC#によってレンダリングされた画像を含むdivを非表示および再表示するように設定しました(データベースの読み取りから取得します)。それが少しTMIである場合は申し訳ありませんが、徹底的にしようとしていますが、質問を洗練するために:アップロードされたデータをうまく処理する方法を知るには、ファイルのアップロードについて十分に知りません。この情報を調べてみましたが、自分に関係があると思われる情報は見つかりませんでした(実際、input type = "file"やFileUploadメソッドに関する有用な情報はほとんど見つかりませんでした)。

input type = "file" id = "pic1id"を使用する方が良いでしょうか?入力要素のIDからファイルを取得できるRequest.Files["pic1id"]など、使用できるものはありますか?または、プログラムは単にアップロードされたすべてのファイルを取得し、「Request.Files [0]」のようにインデックスによって呼び出されるのを待っているロジスティックグループにそれらを貼り付けますか?もしそうなら、インデックスはどのような順序で配置されますか?データの操作を開始する前に、Request.Files.Countを使用して、アップロードされた数をテストする必要がありますか?

個別の入力type="file"フィールドが必要であることに注意してください(ヘルパーによってプロットされているかどうかは関係ありません)。1つの入力で複数のファイルを受け入れたくありません(主に知識が不足しているためです。たとえば、データの操作方法がわからないのではないかと心配しています)。これまでのところ、個別のinput type = "file"フィールドは、画像をスクロールすると非表示/非表示になるdiv内にあるため、各画像(スペース)には独自のinput type="file"フィールドがあります。divの非表示と非表示、(1つの)画像の表示、データベースからのバイナリデータの保存と受信、画像プレースホルダーのクリックはすべてうまく機能します。アップロードされた複数の画像を一度に操作して、個々のデータベースの「画像」フィールドに保存する方法を知っておく必要があります。

私が使用する必要のある構文の例は、非常に高く評価されます。

たくさんの質問をしてすみませんが、これに関する有用な情報をまったく見つけることができませんでした。

助けようとする人に感謝します!

4

1 に答える 1

1

さて、これを解決するために、何かが最終的にうまくいくまで、テストとテストとテストをしなければなりませんでした。これが私がしたことです:

まず、ヘルパーの html をプロットした部分の使用を断念しました。

@FileUpload.GetHtml(initialNumberOfFiles:1, allowMoreFilesToBeAdded:false, includeFormTag:false)

また、id="pic1" などの特定の ID を持つ通常の入力 type="file" を追加しました。

次に、id に基づいて個々のファイル ポストを取得することができました。これは、方法を知る必要があった主なことであり、実際には次のように簡単でした。

Request.Files["pic1"];
于 2012-10-29T13:40:47.583 に答える