web-dev-qa-db-ja.com

asp.netでdropzone.jsを使用する

数日以来、私はドラッグアンドドロップインターフェイスで複数のファイルのアップロードを実装しようとしています。私はたくさん検索しましたが、ついに私の正確な要件を http://www.dropzonejs.com/ から見つけました

上記のサイトから同じ手順を試しました。しかし、私は自分のaspxページにこのドロップゾーン機能を実装できません。

19
Hakuna Matata

Webフォームを使用している場合、投稿されたファイルデータを読み取り、それをファイルに保存するページを実装する必要があります。

例.ASPX

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Mvc4Application_Basic.WebForm1" %>

    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script src="https://raw.github.com/enyo/dropzone/master/downloads/dropzone.js"></script>
        <link href="http://www.dropzonejs.com/css/general.css?v=7" rel="stylesheet" />
    </head>
    <body>
        <form id="frmMain" runat="server" class="dropzone">
            <div>
                <div class="fallback">
                    <input name="file" type="file" multiple />
                </div>
            </div>
        </form>
    </body>
    </html>

コードビハインドの例

    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            foreach (string s in Request.Files)
            {
                HttpPostedFile file = Request.Files[s];

                int fileSizeInBytes = file.ContentLength;
                string fileName = Request.Headers["X-File-Name"];
                string fileExtension = "";

                if (!string.IsNullOrEmpty(fileName))
                    fileExtension = Path.GetExtension(fileName);

                // IMPORTANT! Make sure to validate uploaded file contents, size, etc. to prevent scripts being uploaded into your web app directory
                string savedFileName = Path.Combine(@"C:\Temp\", Guid.NewGuid().ToString() + fileExtension);
                file.SaveAs(savedFileName);
            }
        }
    }

MVCを使用している場合は、これを参照してください https://stackoverflow.com/a/15670033/2288997

34
Arsen