以下のコードは、AjaxUpload.2.0.min.js を使用してファイルをサーバーにアップロードします。
ただし、OS ウィンドウ (アップロードするファイルを選択する場所) を表示するには、[ファイルの追加] ボタンを 1 回だけクリックするのではなく、数回クリックする必要があります。
また、リンクを 1 回クリックしてから、マウスを赤い領域の外に移動して (#upload_files の外に) クリックし、最後にリンクをもう一度クリックすると、動作し、OS ウィンドウが開きます..しかし、なぜ私はこれをしなければなりませんか?AjaxUpload が .livequery 呼び出しで最初にバインドされないということですか? では、どうやって縛るの?
マウスの最初のクリックで表示される OS ウィンドウに注目してください。残りのプログラミングは、私のサーバーで正常に動作しています。
コードを簡単にテストできるように、.js は github にアップロードされますが、実際には、それらは私のマシンにあります。
どうもありがとう
<head>
<style>
#upload_files{color: #fff; background:#F32201; border:1px solid #7E9DB9; padding:2px;}
</style>
<script type="text/javascript" src="https://gist.github.com/raw/6dd585079502f138d87e/7c243080233761859937d52195b670602731a379/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="https://gist.github.com/raw/eeb2fe78f63ab80b626d/5be66e749b19fbb5b7c8814bf72a98c083f2aaaf/jquery.livequery.min.js"></script>
<script type="text/javascript" src="https://gist.github.com/raw/826bff2445c8533dd7fc/797734455959ef27796b6770c95a7b39049ae6e9/AjaxUpload.2.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
function uploadFiles(){
new AjaxUpload('#upload_files', {
action: 'whereToUploadInServer.php',
});
}//end uploadFiles
$("#upload_files").livequery("click", function(e){
e.preventDefault();
uploadFiles();
//debugger ;
});
}); //end document ready
</script>
</head>
<body>
<div><a href="#" id="upload_files">Add File</a></div> <br>
</body>