Die meisten auf der PC-Seite hochgeladenen Dateien spielen keine Rolle, wenn auf der mobilen Seite jedoch immer noch verschiedene redundante Plug-Ins verwendet werden Um die Funktion zum Hochladen von Bildern zu haben, da H5 bereits über entsprechende Schnittstellen verfügt und die Kompatibilität gut ist, wird der Verwendung von H5 für die Implementierung natürlich Vorrang eingeräumt.
Die wichtigsten verwendeten Technologien sind:
ajax
FileReader
FormData
HTML-Struktur:
XML/HTML-CodeInhalt in die Zwischenablage kopieren
-
<div class="camera-area">
-
<form enctype="multipart/ form-data" method="post">
-
<Eingabe Typ="Datei" Name="fileToUpload" Klasse="fileToUpload" akzeptieren="image/*" capture="camera"/>
-
<div Klasse="upload- Fortschritt"><span>span>div>
-
Formular>
-
<div class="thumb" >div>
-
div>
-
Das Paket upload.js hängt von zepto ab
JavaScript-CodeInhalt in die Zwischenablage kopieren
-
(Funktion($) {
-
$.extend($.fn, {
-
Datei hochladen: Funktion(opts) {
-
dies.each(Funktion() {
-
var $self = $(this);
-
var doms = {
-
"fileToUpload": $self.find(".fileToUpload"),
-
"thumb": $self.find(".thumb"),
-
"progress": $self.find(".upload-progress")
-
};
-
var funs = {
-
-
"fileSelected": Funktion() {
-
var files = (doms.fileToUpload)[0].files;
-
var count = files.length;
-
for (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';
- sonst
- fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() 'KB';
- }
- funs.uploadFile();
- },
-
- uploadFile: function() {
- var fd = new FormData();
- var files = (doms.fileToUpload)[0].files;
- var count = files.length;
- for (var index = 0; index < count; index ) {
- var file = files[index];
fd.append(opts.file, file);
//Füge die Datei zu den Formulardaten hinzu - funs.previewImage(file);
//Vorschau des Bildes vor dem Hochladen oder Vorschau des Textes mit anderen Methoden -
- var
xhr = - new XMLHttpRequest();
xhr.upload.addEventListener("progress"
, funs.uploadProgress, - false); // Upload-Fortschritt überwachen
"load"
, funs.uploadComplete, - false);
xhr.addEventListener("error"
, opts.uploadFailed, - false);
xhr.open("POST"
, opts.url>);
- xhr.send(fd);
},
-
- Vorschaubild: Funktion(Datei) {
- var gallery = doms.thumb;
- var img = document.createElement("img");
img.file = file;
- doms.thumb.html(img);
-
//Verwenden Sie die FileReader-Methode, um den Bildinhalt anzuzeigen -
var- reader = new FileReader();
reader.onload = (
Funktion- (aImg) {
Zurück- Funktion(e) {
aImg.src = e.target.result;
-
})(img); -
reader.readAsDataURL(file); -
}, -
uploadProgress: - function
(evt) { -
if
(evt.lengthComputable) { -
var
percentComplete = Math.round(evt.loaded * 100 / evt.total);
- doms.progress.html(percentComplete.toString() '%');
-
},
- "uploadComplete"
: - Funktion
(evt) { -
Alert(evt.target.responseText)
};
- doms.fileToUpload.on("change", function() {
- doms.progress.find("span").width("0"); >
- funs.fileSelected();
- });
- });
- }
- });
- })(Zepto);
Aufrufmethode:
JavaScript-CodeInhalt in die Zwischenablage kopieren
- $(".camera-area").fileUpload({
- "url": "savetofile.php",
- "Datei": "meineDatei"
- });
PHP-Teil:
PHP-CodeInhalt in die Zwischenablage kopieren
-
- if (isset($_FILES['myFile'])) {
- // Beispiel:
- writeLog($_FILES);
move_uploaded_file(
- $_FILES['myFile']['tmp_name'], "uploads/" . $_FILES['myFile']['name']);
- Echo 'erfolgreich';
}
-
- Funktion writeLog($log){
- if(is_array($log) | |. is_object($log)){
- $log = json_encode($log);
}
-
- $log = $log."rn";
-
- file_put_contents('log.log', $log,FILE_APPEND);
}
-
?>
-
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Originaltext: http://www.cnblogs.com/hutuzhu/p/5254532.html