php+ajax実装ファイルカットアップロード機能例
2890 ワード
この例では、php+ajaxによるファイルカットアップロード機能について説明します.皆さんの参考にしてください.具体的には以下の通りです.
html 5のFileオブジェクトはBlobバイナリオブジェクトを継承し、Blobはファイルデータを切断するためのslice関数を提供します.
html 5のFileオブジェクトはBlobバイナリオブジェクトを継承し、Blobはファイルデータを切断するためのslice関数を提供します.
</code></pre><form method="post" id="myForm">
<input type="file" name="file" id="upfile"/>
<input type="submit" name="submit" value=" "/>
</form>
<div id="upStatus"/>
<script type="text/javascript">
var myForm = document.getElementById("myForm");
var upfile = document.getElementById("upfile");
myForm.onsubmit = function() {
//
var file = upfile.files[0];
//
var fileSize = file.size;
// ( )
var CutSize = 1024 * 1024 * 10;
//
var CutStart = 0;
//
var CutEnd = CutStart + CutSize;
//
var tmpfile = new Blob();
while(CutStart < fileSize) {
tmpfile = file.slice(CutStart, CutEnd);
// FormData
var fd = new FormData();
// FormData
fd.append("file", tmpfile);
var xhr = new XMLHttpRequest();
//
xhr.open("post", "upfile.php", false);
//
console.log(Math.round( (CutStart + tmpfile.size) / fileSize * 100) + "%");
// FormData
xhr.send(fd);
//
CutStart = CutEnd;
CutEnd = CutStart + CutSize;
}
return false;
};
</script>
</div>
<p>upfile.php :</p>
<div class="jb51code">
<pre><code>
<?php $uploadDir = './upload/';
if(!file_exists($uploadDir)) {
@mkdir($uploadDir, 0777, true);
}
$uploadFile = $uploadDir . basename($_FILES['file']['name']);
if(!file_exists($uploadFile)) {
//
move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile);
} else {
// ,
file_put_contents($uploadFile, file_get_contents($_FILES['file']['tmp_name']), FILE_APPEND);
}
</pre?>
</code></pre></div>
<p> PHP :《PHP+ajax 》、《PHP 》、《php (string) 》、《php+mysql 》 《php 》</p>
<p> PHP 。</p>
<div class="lbd_bot clearfix">
<span id="art_bot" class="jbTestPos"/>
</div>
</div>
</div>
</div>