Kebanyakan fail yang dimuat naik pada bahagian PC menggunakan pemalam Tidak mengapa jika anda memperkenalkan flash Namun, jika bahagian mudah alih masih menggunakan pelbagai pemalam berlebihan, ia mungkin akan disembur sehingga mati untuk mempunyai fungsi memuat naik imej, memandangkan H5 sudah mempunyai antara muka yang berkaitan Dan keserasian adalah baik, sudah tentu keutamaan diberikan kepada penggunaan H5 untuk pelaksanaan.
Teknologi utama yang digunakan ialah:
ajax
Pembaca Fail
FormData
Struktur HTML:
Kod XML/HTMLSalin kandungan ke papan keratan
-
<div kelas="kawasan kamera">
-
<bentuk enctype="multipart/ form-data" kaedah="post">
-
<input taip="fail" nama="failUntukMuat Naik" kelas="fileToUpload" terima="imej/*" tangkap="kamera"/>
-
<div kelas="muat naik- kemajuan"><span>span>div>
-
borang>
-
<div kelas="ibu jari" >div>
-
div>
-
Muat naik.js yang dibungkus bergantung pada zepto
Kod JavaScriptSalin kandungan ke papan keratan
-
(fungsi($) {
-
$.extend($.fn, {
-
Muat naik fail: fungsi(pilihan) {
-
ini.setiap(fungsi() {
-
var $self = $(ini);
-
var doms = {
-
"fileToUpload": $self.find(".fileToUpload"),
>
-
"ibu jari": $self.find(".ibu jari"),
-
"kemajuan": $self.find(".upload-progress") 🎜>
- };
- var keseronokan = {
- //选择文件,获取文件大小,也可以在这里获取文开件,取文廏非要求格式的文件
- "fail Dipilih": fungsi() {
- var fail = (doms.fileToUpload)[0].files;
- var count = files.length;
- untuk (var indeks = 0; indeks < kiraan; < indeks ) { >
- var fail = fail[indeks];
- var Saiz fail = 0;
- jika (saiz.fail > 1024 * 1024)
Saiz fail = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() -
'MB''MB''MB'
- lain
- Saiz fail = (Math.round(file.size * 100 / 1024) / 100).toString() 'KB'
}
-
funs.uploadFile();
-
},
-
-
muat naikFail: fungsi() {
-
var fd = baharu FormData();
-
var fail = (doms.fileToUpload)[0].fail
-
var kiraan = fail.panjang
-
untuk (var indeks = 0; indeks < kiraan; indeks ) {
- var fail = fail[indeks];
- fd.append(opts.file, fail);
- funs.previewImage(file);
-
- var xhr = baharu XMLHttpRequest(
xhr.upload.addEventListener(- "kemajuan", funs.uploadProgress, false); // Pantau kemajuan muat naik
xhr.addEventListener(- "muat", funs.uploadComplete, false);
xhr.addEventListener(- "error", opts.uploadFailed, false);
xhr.open(- "POST", opts.url;
xhr.send(fd); -
},
-
- pratontonImej: fungsi(fail) {
- var galeri = doms.thumb
- var img = document.createElement("img");
img.file = fail; -
doms.thumb.html(img);
-
//Gunakan kaedah FileReader untuk memaparkan kandungan imej -
var- pembaca = baharu FileReader(
reader.onload = (
fungsi- (aImg) {
kembali- fungsi(e) {
aImg.src = e.target.hasil;
-
})(img); -
pembaca.readAsDataURL(fail);
- },
- uploadProgress:
fungsi- (evt) {
- jika (evt.lengthComputable) {
- var peratusLengkap = Math.round(evt.loaded * 100 / evt.total);
doms.progress.html(percentComplete.toString() - '%'
- },
"muat naik Selesai"- :
fungsi- (evt) {
- makluman(evt.target.responseText)
};
- doms.fileToUpload.on("ubah", fungsi() {
- doms.progress.find("span").lebar("0"); >
- funs.fileSelected();
- });
- });
- }
- });
- })(Zepto);
Kaedah panggilan:
Kod JavaScript
Salin kandungan ke papan keratan
$(- ".kawasan-kamera").failMuat Naik({
- "url": "savetofile.php",
- "fail": "Fail saya"
});
-
Bahagian PHP:
Kod PHP
Salin kandungan ke papan keratan
- jika (isset($_FILES['myFile'])) {
- // Contoh:
tulisLog(
- $_FAIL);
move_uploaded_file(
- $_FILES['myFile']['tmp_name'], "muat naik/" $_FILES['myFile'<🎜. >]['nama']);
gema
- 'berjaya';
}
fungsi- writeLog(
$log- ){
jika(
adalah_array- ($log) | |. ialah_objek($log)){
$log = json_encode(
$log- );
}
$log- =
$log- ."rn";
file_put_kandungan- (
'log.log'- , $log,FILE_APPEND);
}
?>
-
Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu kajian semua orang.
Teks asal: http://www.cnblogs.com/hutuzhu/p/5254532.html