数日以来、私はドラッグアンドドロップインターフェイスで複数のファイルのアップロードを実装しようとしています。私はたくさん検索しましたが、ついに私の正確な要件を http://www.dropzonejs.com/ から見つけました
上記のサイトから同じ手順を試しました。しかし、私は自分のaspxページにこのドロップゾーン機能を実装できません。
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