La plupart des fichiers téléchargés côté PC utilisent des plug-ins. Peu importe si vous introduisez Flash. Cependant, si le côté mobile utilise toujours divers plug-ins redondants, il sera probablement détruit. avoir la fonction de télécharger des images, puisque H5 a déjà des interfaces associées et que la compatibilité est bonne, bien sûr, la priorité est donnée à l'utilisation de H5 pour la mise en œuvre.
Les principales technologies utilisées sont :
ajax
FileReader
FormulaireDonnées
Structure HTML :
Code XML/HTMLCopier le contenu dans le presse-papiers
-
<div class="zone de la caméra">
-
<form enctype="multipart/ form-data" méthode="post">
-
<entrée type="fichier" nom="fileToUpload" class="fileToUpload" accepter="image/*" capture="caméra"/>
-
<div class="upload- progrès"><span>span>div>
-
formulaire>
-
<div classe="pouce" >div>
-
div>
-
Le fichier upload.js packagé dépend de zepto
Code JavaScriptCopier le contenu dans le presse-papiers
-
(fonction($) {
-
$.extend($.fn, {
-
fileUpload : fonction(opts) {
-
ce.each(fonction() {
-
var $self = $(ce);
-
var doms = {
-
"fileToUpload" : $self.find(".fileToUpload"),
-
"pouce" : $self.find(".thumb"),
-
"progress" : $self.find(".upload-progress")
-
} ;
-
var funs = {
-
-
"fileSelected" : fonction() {
-
var files = (doms.fileToUpload)[0].files;
-
var count = files.length;
-
pour (var index = 0; index < count; index ) {
- var file = files[index];
- var fileSize = 0;
- if (file.size > 1024 * 1024)
-
fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() 'MB';
-
autre
-
fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() 'KB';
-
}
-
funs.uploadFile();
-
},
-
-
uploadFile : fonction() {
-
var fd = new FormData();
-
var files = (doms.fileToUpload)[0].files;
-
var count = files.length
-
pour (var index = 0; index < count; index ) {
- var fichier = fichiers[index];
- fd.append(opts.file, file);
- funs.previewImage(file);
-
- var xhr = nouveau XMLHttpRequest();
xhr.upload.addEventListener(
"progress"- , funs.uploadProgress, false); // Surveiller la progression du téléchargement xhr.addEventListener(
"load"- , funs.uploadComplete, false <🎜); >
xhr.addEventListener("erreur"
- , opts.uploadFailed, false <🎜); >
xhr.open("POST"
, opts.url); -
xhr.send(fd);
},
-
- aperçuImage : fonction(fichier) {
- var galerie = doms.thumb;
- var img = document.createElement("img"
);
- img.file = fichier;
- doms.thumb.html(img);
-
- var reader = nouveau FileReader();
- reader.onload = (fonction(aImg) {
- retour fonction(e) {
- aImg.src = e.target.result
-
})(img); -
reader.readAsDataURL(fichier); -
}, -
uploadProgress : - fonction(evt) {
- si (evt.lengthComputable) {
- var percentComplete = Math.round(evt.loaded * 100 / evt.total);
doms.progress.html(percentComplete.toString()
'%'- );
}, -
- "uploadComplete"
: - fonction(evt) {
alerte(evt.target.responseText)
- };
- doms.fileToUpload.on("change", function() {
- doms.progress.find("span").width("0" <🎜); >
- funs.fileSelected();
- });
- });
- }
- });
- })(Zepto);
Méthode d'appel :
Code JavaScriptCopier le contenu dans le presse-papiers
- $(".camera-area").fileUpload({
- "url" : "savetofile.php",
- "fichier" : "monFichier"
- });
Partie PHP :
Code PHPCopier le contenu dans le presse-papiers
-
- if (isset($_FILES['monFichier'])) {
- // Exemple :
- writeLog($_FILES );
- move_uploaded_file($_FILES['myFile']['tmp_name'], "uploads/" $_FILES['monFichier'<🎜. >]['nom']);
- écho 'réussi' ;
} -
- fonction writeLog($log){
- if(is_array($log) | | is_object($log)){
- $log = json_encode($log );
} -
- $log = $log."rn";
-
- file_put_contents('log.log', $log,FILE_APPEND);
} -
?> -
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.
Texte original : http://www.cnblogs.com/hutuzhu/p/5254532.html