界面样式我是参考了一个国外的相册网站,改动不大,只是把鸟语转换成中文,以及上传时的样式也进行了改动,之所以选这个的原因就是,我很容易做扩展,它支持3种方式添加图片,一种拖拽上传,一种常规的选">
suchen
HeimWeb-FrontendH5-TutorialHTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten

Da es sich im Titel um ein Beispiel handelt, werde ich es dieses Mal nicht erklären, da ich dieses Beispiel anhand von etwa 5 oder 6 per Drag-and-Drop hochgeladenen Plug-Ins und Demos zusammengestellt und dann die besten darunter zusammengestellt habe . Der Ort wurde ausgewählt und schließlich wurde er zu einem solchen Beispiel. Schauen wir ihn uns gemeinsam an (es kann nicht garantiert werden, dass die Adresse für längere Zeit gültig ist. Wenn sie ungültig ist, klicken Sie bitte am Ende auf den Demo-Download der Artikel):

Ich beziehe mich auf den Schnittstellenstil. Eine ausländische Fotoalbum-Website hat nur die Vogelgesänge in Chinesisch umgewandelt und den Stil geändert Ich habe mich für diese Option entschieden, weil sie für mich einfach zu erweitern ist. Sie unterstützt drei Möglichkeiten zum Hochladen von Bildern, die andere ist das Hochladen von Dateien per Drag-and-Drop und die andere ist das Hinzufügen von Netzwerkbildern. Es integriert geschickt drei Upload-Modi und Sie können es mit dem IE-Browser durchsuchen. Wenn HTML5 nicht unterstützt wird, gibt es keine Aufforderung zum Hochladen von Bildern per Drag & Drop, wie im Bild gezeigt:

Der wichtigste Teil des Drag-and-Drop-Uploads ist der js-Teil des Codes, der 70 % der Funktionen implementiert. Die anderen 30 % dienen lediglich der Übermittlung der Bildinformationen an den Hintergrund und der anschließenden entsprechenden Verarbeitung, z. B. der Komprimierung , Zuschneiden usw. Schauen wir uns also zunächst den js-Implementierungscode an.

Code kopieren
Der Code lautet wie folgt:

$().ready( function() {
if($.browser.safari || $.browser.mozilla){
$('#dtb-msg1 .kompatible').show();
$('#dtb -msg1 . nicht kompatibel').hide();
$('#drop_zone_home').hover(function(){
$(this).children('p').stop().animate({ top:' 0px'},200);
},function(){
$(this).children('p').stop().animate({top:'-44px'},200 );
});
//Funktionsimplementierung
$(document).on({
dragleave:function(e){
e.preventDefault();
$( '.dashboard_target_box ').removeClass('over');
},
drop:function(e){
e.preventDefault();
//$('.dashboard_target_box'). removeClass(' over');
},
dragenter:function(e){
e.preventDefault(); 🎜>} ,
dragover:function(e){
e.preventDefault();
$('.dashboard_target_box').addClass('over');
}
}) ;
var box = document.getElementById('target_box');
box.addEventListener("drop",function(e){
e.preventDefault();
//Holen Sie sich die Dateiliste
var fileList = e.dataTransfer.files;
var img = document.createElement('img');
//Erkennen Sie, ob es sich um einen Vorgang zum Ziehen von Dateien auf die Seite handelt
if(fileList .length == 0) {
$('.dashboard_target_box').removeClass('over');
return;
//Erkennen Sie, ob es sich bei der Datei um ein Bild handelt
if (fileList[0].type. indexOf('HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten') === -1){
$('.dashboard_target_box').removeClass('over');
return; >if($.browser.safari ){
//Chrome8
img.src = window.webkitURL.createObjectURL(fileList[0]);
}else if($.browser.mozilla){
//FF4
img.src = window.URL.createObjectURL(fileList[0]);
}else{
//Instanziiere das Dateileserobjekt
var reader = new FileReader() ;
reader.onload = function(e){
img.src = this.result;
$(document.body).appendChild(img>}
reader.readAsDataURL( fileList[0]);
}
var xhr = new XMLHttpRequest();
xhr.open("post", "test.php", true); -Requested-With", "XMLHttpRequest ");
xhr.upload.addEventListener("progress", function(e){
$("#dtb-msg3").hide();
$ ("#dtb-msg4 span" ).show();
$("#dtb-msg4").children('span').eq(1).css({width:'0px'});
$('.show ').html('');
if(e.lengthComputable){
var geladen = Math.ceil((e.loaded / e.total) * 100);
$("#dtb -msg4").children('span').eq(1).css({width:(loaded*2) 'px'}); false);
xhr. addEventListener("load", function(e){
$('.dashboard_target_box').removeClass('over');
$("#dtb-msg3"). show();
$ ("#dtb-msg4 span").hide();
var result = jQuery.parseJSON(e.target.responseText);
alert(result.filename); 🎜>$('.show' ).append(result.img);
var fd = new FormData(
fd.append('xfile', fileList[0 ]);
xhr. send(fd);
}else{
$('#dtb-msg1 .hide(); ('#dtb-msg1 .nicht kompatibel ').show();
}
});
Zu Beginn habe ich zunächst den Browsertyp festgelegt, da wie gerade erwähnt verschiedene Browser unterschiedliche Schnittstellen sehen. Der Hauptimplementierungscode beginnt mit „Funktionsimplementierung“. Ich werde nicht näher darauf eingehen, warum dieser Vorgang auf diese Weise durchgeführt wird und was das Prinzip ist. Sie können sich auf diesen Artikel beziehen: „Detaillierte Erläuterung des Drag-and-Drop-Uploads auf Renren Homepage (HTML5 Drag&Drop, FileReader API, Formdata)“, aber der Code für den Ajax-Upload-Teil ist immer noch etwas anders, da der von Renren etwas mühsam zu sein scheint, also habe ich nach einem anderen Weg gesucht.
Der letzte Teil besteht darin, den PHP-Code hochzuladen. Hier gebe ich nur eine Referenz an, Sie können ihn entsprechend den Anforderungen des Projekts selbst schreiben.

Code kopieren
Der Code lautet wie folgt:

$r = new stdClass( );
header('content-type: application/json');
$maxsize = 10; //Mb
if($_FILES['xfile']['size'] > ($ maxsize * 1048576 )){
$r->error = "Die Bildgröße überschreitet nicht $maxsize MB"; ($folder)) {
mkdir($folder);
$folder .= $_POST['folder'] : ''; 🎜>if(! is_dir($folder)){
mkdir($folder);
}
if(preg_match('/HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten/i', $_FILES['xfile']['type' ])){
$filename = $_POST['value'] : $folder sha1(@microtime() . '-' . $_FILES['xfile']['name ']) . ' .jpg'; count($tld) - 1];
$filename = $_POST['value'] : $folder sha1(@microtime() . '-' . $_FILES['xfile ']['name ']) . $tld; $_FILES['xfile ']['type'], $types)){
$source = file_get_contents($_FILES["xfile"]["tmp_name"]);
HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitenresize($source, $filename , $_POST['width'], $_POST['height'], $_POST['crop'], $_POST['quality']);
}else{
move_uploaded_file($_FILES["xfile "]["tmp_name "], $filename);
}
$path = str_replace('test.php', '', $_SERVER['SCRIPT_NAME']);
$r-> filename = $filename;
$r->path = $path
$r->img = 'HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten';
echo json_encode($r);
function HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitenresize($source, $destination, $width = 0, $height = 0, $crop = false, $quality = 80) {
$quality = $quality ? $quality : 80;
$HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten = HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitencreatefromstring($source);
if ($HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten) {
// Abmessungen abrufen
$w = HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitensx($HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten );
$h = HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitensy($HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten);
if (($width && $w > $width) || ($height && $h > $height)) {
$ratio = $w / $ h;
if (($ratio >= 1 || $height == 0) && $width && !$crop) {
$new_height = $width / $ratio; >$new_width = $ width;
} elseif ($crop && $ratio $new_height = $width / $ratio; ;
} else {
$new_width = $height * $ratio;
$new_height = $height;
} else {
$new_width = $w; $new_height = $h ;
}
$x_mid = $new_width * .5; //horizontale Mitte
$y_mid = $new_height * .5; //vertikale Mitte
/ >error_log('height : ' . $new_height . ' - width: ' . $new_width)
$new = HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitencreatetruecolor(round($new_width), Round($new_height)); $HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten, 0, 0, 0, 0, $new_width, $new_height, $w, $h);
// Zuschneiden
if ($crop) {
$crop = HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitencreatetruecolor($width ? $width : $new_width , $height ? $height : $new_height);
HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitencopyresampled($crop, $new, 0, 0, ($x_mid - ($width * .5)), 0, $width, $ height, $width, $height);
//($y_mid - ($height * .5))
}
// Ausgabe
// Interlancing aktivieren [für progressives JPEG]
HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiteninterlace($crop ? $crop : $new, true);
$dext = strtolower(pathinfo($destination, PATHINFO_EXTENSION));
if ($dext == '') {
$dext = $ext;
$destination .= '.' HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitenjpeg($crop ? $crop : $new, $destination, $quality);
case 'png':
$pngQuality = ($quality - 100) /
$ pngQuality = Round(abs ($pngQuality));
HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitenpng($crop ? $crop : $new, $destination, $pngQuality); $crop ? $crop : $new, $destination);
@HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitendestroy($HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeiten);
@HTML5-Drag-and-Drop-Upload-Bildbeispiel Demonstration_HTML5-Tutorial-Fähigkeitendestroy($crop );
}
}


PHP gibt schließlich ein Array im JSON-Format zurück. Die von mir zurückgegebenen Informationen sind die Bildadresse, der Name und der HTML-Code des IMG. Zu diesem Zeitpunkt wird der Vorgang abgerufen und verarbeitet ist vorbei.
Wie am Anfang des Artikels erwähnt, gibt es auch Click-to-Select-Datei-Uploads und Netzwerkbilder. Da diese beiden nicht in den Rahmen dieses Themas fallen, werde ich nicht darauf eingehen. Darüber hinaus sind diese beiden Funktionen problemlos zu implementieren.
Demo-Download
Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Dekonstruieren von H5 -Code: Tags, Elemente und AttributeDekonstruieren von H5 -Code: Tags, Elemente und AttributeApr 18, 2025 am 12:06 AM

Der HTML5 -Code besteht aus Tags, Elementen und Attributen: 1. Das Tag definiert den Inhaltstyp und ist von Winkelklammern umgeben, wie z. 2. Elemente bestehen aus Start -Tags, Inhalten und End -Tags wie Inhalten. 3. Attribute definieren Schlüsselwertpaare im Start-Tag und verbessern Funktionen, z. B.. Dies sind die grundlegenden Einheiten zum Aufbau von Webstruktur.

H5 -Code verstehen: Die Grundlagen von HTML5H5 -Code verstehen: Die Grundlagen von HTML5Apr 17, 2025 am 12:08 AM

HTML5 ist eine Schlüsseltechnologie zum Aufbau moderner Webseiten und bietet viele neue Elemente und Funktionen. 1. HTML5 führt semantische Elemente wie usw. ein, die die Webseitenstruktur und die SEO verbessern. 2. Support Multimedia-Elemente und Einbetten von Medien ohne Plug-Ins. 3. Formulare verbessern neue Eingangstypen und Überprüfungseigenschaften und vereinfachen Sie den Überprüfungsprozess. 4. Bieten Sie Offline- und lokale Speicherfunktionen an, um die Leistung der Webseiten und die Benutzererfahrung zu verbessern.

H5 -Code: Best Practices für WebentwicklerH5 -Code: Best Practices für WebentwicklerApr 16, 2025 am 12:14 AM

Zu den Best Practices für den H5 -Code gehören: 1. Verwenden Sie korrekte DocType -Deklarationen und Zeichenkodierung; 2. Verwenden Sie semantische Tags; 3.. HTTP -Anfragen reduzieren; 4. Verwenden Sie asynchrone Laden; 5. Bilder optimieren. Diese Praktiken können die Effizienz, Wartbarkeit und Benutzererfahrung von Webseiten verbessern.

H5: Die Entwicklung von Webstandards und TechnologienH5: Die Entwicklung von Webstandards und TechnologienApr 15, 2025 am 12:12 AM

Webstandards und -technologien haben sich bisher aus HTML4, CSS2 und einfachem JavaScript entwickelt und haben erhebliche Entwicklungen erfahren. 1) HTML5 führt APIs wie Leinwand und Webstorage ein, die die Komplexität und Interaktivität von Webanwendungen verbessern. 2) CSS3 fügt Animations- und Übergangsfunktionen hinzu, um die Seite effektiver zu gestalten. 3) JavaScript verbessert die Entwicklungseffizienz und die Lesbarkeit der Code durch moderne Syntax von Node.js und ES6, wie z. B. Pfeilfunktionen und Klassen. Diese Änderungen haben die Entwicklung von Leistungsoptimierung und Best Practices von Webanwendungen gefördert.

Ist H5 eine Abkürzung für HTML5? Erforschen der DetailsIst H5 eine Abkürzung für HTML5? Erforschen der DetailsApr 14, 2025 am 12:05 AM

H5 ist nicht nur die Abkürzung von HTML5, sondern auch ein breiteres Ökosystem der modernen Webentwicklungstechnologie: 1. H5 enthält HTML5, CSS3, JavaScript und verwandte APIs und Technologien; 2. Es bietet eine reichhaltigere, interaktive und reibungslose Benutzererfahrung und kann nahtlos auf mehreren Geräten ausgeführt werden. 3. Mit dem H5 -Technologie -Stack können Sie reaktionsschnelle Webseiten und komplexe interaktive Funktionen erstellen.

H5 und HTML5: häufig verwendete Begriffe in der WebentwicklungH5 und HTML5: häufig verwendete Begriffe in der WebentwicklungApr 13, 2025 am 12:01 AM

H5 und HTML5 beziehen sich auf dasselbe, nämlich HTML5. HTML5 ist die fünfte Version von HTML, die neue Funktionen wie semantische Tags, Multimedia -Support, Leinwand und Grafiken, Offline -Speicher und lokaler Speicher bietet, die Ausdrucksfähigkeit und Interaktivität von Webseiten verbessert.

Worauf bezieht sich H5? Erforschen des KontextesWorauf bezieht sich H5? Erforschen des KontextesApr 12, 2025 am 12:03 AM

H5REFERSTOHTML5, ApivotaltechnologyInwebdevelopment.1) HTML5IntroducesNewelementsandapisrich, Dynamicwebapplications.2) ITSUPP ortsmultimediaWitHoutPlugins, BETHINGINGUSEREXPERICERCROSSDEVICES.3) SEMANTICELEMENTSIMPROVEPENTENTENTENTRUCTENTRUCTELUREANDSEO.4) H5'SRespo

H5: Tools, Frameworks und Best PracticesH5: Tools, Frameworks und Best PracticesApr 11, 2025 am 12:11 AM

Zu den Tools und Frameworks, die in der H5 -Entwicklung gemeistert werden müssen, gehören Vue.js, React und WebPack. 1.Vue.js eignet sich zum Erstellen von Benutzeroberflächen und unterstützt die Komponentenentwicklung. 2. Die Rendern des Seitenrenders über virtuelle DOM optimiert, geeignet für komplexe Anwendungen. 3.Webpack wird zur Modulverpackung und zur Optimierung der Ressourcenlast verwendet.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor