私はイベントに慣れていて、新しいフラッシュです。私はPluploadを使って自分のフォルダにファイルをアップロードすることができました。私のコードでC#でプルアップ - イベント?
<style type="text/css">
@import url(/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css);
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>
<script type="text/javascript" src="/plupload/js/plupload.full.js"></script>
<script type="text/javascript" src="/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
<script type="text/javascript">
$(function() {
$("#uploader").pluploadQueue({
// General settings
runtimes: 'gears,flash,silverlight,browserplus,html5',
url: '/uploader.ashx',
max_file_size: '10mb',
chunk_size: '1mb',
unique_names: true,
preinit: attachCallbacks,
// Resize images on clientside if we can
//resize: { width: 320, height: 240, quality: 90 },
// Specify what files to browse for
filters: [
{ title: "Image files", extensions: "jpg,gif,png" },
{ title: "Zip files", extensions: "zip" }
],
// Flash settings
flash_swf_url: '/plupload/js/plupload.flash.swf',
// Silverlight settings
silverlight_xap_url: '/plupload/js/plupload.silverlight.xap'
});
// Client side form validation
$('form').submit(function (e) {
var uploader = $('#uploader').pluploadQueue();
// Validate number of uploaded files
if (uploader.total.uploaded == 0) {
// Files in queue upload them first
if (uploader.files.length > 0) {
// When all files are uploaded submit form
uploader.bind('UploadProgress', function() {
if (uploader.total.uploaded == uploader.files.length)
$('form').submit();
});
uploader.start();
} else
alert('You must at least upload one file.');
e.preventDefault();
}
function attachCallbacks(Uploader) {
Uploader.bind('FileUploaded', function(Up, File, Response) {
if ((Uploader.total.uploaded + 1) == Uploader.files.length) {
window.location = '/display.aspx';
}
});
}
});
そして、私のハンドラ::私は(!あまりにもそれに新)ジェネリックハンドラを使用しています
はここに私のコードです
public class uploader : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int chunk = context.Request["chunk"] != null ? int.Parse(context.Request["chunk"]) : 0;
string fileName = context.Request["name"] ?? string.Empty;
HttpPostedFile fileUpload = context.Request.Files[0];
var uploadPath = context.Server.MapPath(GlobalVariables.UploadPath);
using (
var fs = new FileStream(Path.Combine(uploadPath, fileName),
chunk == 0 ? FileMode.Create : FileMode.Append))
{
var buffer = new byte[fileUpload.InputStream.Length];
fileUpload.InputStream.Read(buffer, 0, buffer.Length);
fs.Write(buffer, 0, buffer.Length);
}
context.Response.ContentType = "text/plain";
context.Response.Write("Success");
}
public bool IsReusable
{
get { return false; }
}
}
これがされ作業100%
問題は、アップロードが完了しても何も起こりません。ファイルがアップロードされたという事実が表示されました。
私は何とか新しい方法を発射する必要があります。つまり、アップロードしたファイルを処理する必要があります。それらを正しいフォルダに移動してください...それらの名前をデータベースに追加し、表示画面にリダイレクトしてください。
私はコードに何か(イベント)をさせるためにフラッシュコントロールが必要ですし、現在処理できるファイル(アップロードされたファイルのリスト)も自分のコードに伝えてください。
これは可能ですか?
編集:attachCallbacksメソッドを追加しました。添付されています。今はページにリダイレクトされますが、何らかの方法でアップロードされたファイルのリスト(ジェネリックハンドラかもしれませんか?)を送信し、ファイルを処理する必要があります。メソッドにリダイレクトするにはどうすればよいですか?
ありがとうございます - 私はいくつかの進歩と私の質問を更新しました。私は基本的に完了時に新しいページにリダイレクトしますが、何らかの形で、アップロードされたファイルのリストを受け入れるメソッドにリダイレクトする必要があります。私の.Netコード。あなたは助けてくれますか?多分あなたは答えますが、私は.Netコードを取得する方法を見ることができません。 – Craig
追加は新しいattachCallbacksメソッドとpreinitプロパティです。 – Craig