


Praktische Tipps und Methoden zur Implementierung der Datei-Upload-Backend-Verarbeitung in PHP
In diesem Artikel werden hauptsächlich relevante Informationen zu praktischen Fähigkeiten und Methoden der Back-End-Verarbeitung von PHP-Datei-Uploads vorgestellt. Hier finden Sie eine detaillierte Erklärung der Back-End-Verarbeitung und einen einfachen Beispielcode
Praktische Tipps und Methoden für die Back-End-Verarbeitung des PHP-Datei-Uploads
Zitat: Wie im vorherigen Artikel erwähnt, können Sie versteckte Methoden auf der Seite verwenden, um das Erscheinungsbild Ihrer Upload-Seite zu verbessern Schön. Aber das bringt der Leistung nichts, gibt es also nicht einige Verarbeitungstechniken in der Hintergrundverarbeitung? Zu den sogenannten Hintergrundkenntnissen gehören das schnellere Hochladen und das Hochladen größerer Dateien! In diesem Artikel geht es also darum, welche Fähigkeiten es in der Back-End-Verarbeitung gibt!Geschäftsszenario 1 Wir wählen nur eine einzelne Datei zum Hochladen aus und es ist keine sofortige Überprüfung erforderlich. Dann gibt es möglicherweise überhaupt keine Optimierung, denn am Ende müssen Sie diese Datei nur noch in das Formular einfügen, sie zusammen senden und sie dann direkt verarbeiten!
Geschäftsszenario 2Es müssen mehrere Dateien hochgeladen werden und der interne Inhalt der Dateien muss von Zeit zu Zeit überprüft und auf der entsprechenden Seite angezeigt werden. In diesem Fall müssen wir die Datei sofort hochladen, nachdem der Benutzer sich zum Hochladen der Datei entschieden hat, da wir die Informationen in der Datei lesen müssen. Wenn wir sie am Ende übermitteln, müssen wir die Datei auch einmal übermitteln. Offensichtlich gibt es hier eine sich wiederholende Upload-Aufgabe, die die Zeit des Benutzers und die andere die Bandbreitenressourcen des Servers verbraucht. Die denkbare Methode zur Optimierung ist ebenfalls sehr einfach. Nach dem ersten Hochladen der Datei kann die Datei auf dem Server gespeichert werden und beim tatsächlichen Absenden des Formulars einfach die hochgeladene temporäre Datei gelesen werden. Ja, das ist unser Ansatz!
Geschäftsszenario drei , ähnlich wie Szenario zwei, erfordert das Hochladen mehrerer Dateien, es können jedoch mehrere Dateien separat hochgeladen werden. Das heißt, wir haben möglicherweise 10 Millionen zum ersten Mal, 10 Millionen zum zweiten Mal und insgesamt 10 Mal hochgeladen. Dann muss die einmalige Übermittlung auf der Serverseite die Upload-Größenbeschränkung überschritten haben, aber wenn ja Das Hochladen ist jedes Mal möglich und beim Absenden müssen wir nur eine kurze Textnachricht hochladen!
Die Idee ist in der Tat einfach und es scheint kein Problem zu sein. Vielleicht sind meine Fähigkeiten jedoch begrenzt und ich habe wirklich viel Zeit gebraucht, um damit umzugehen! Nachfolgend gebe ich einen Beispielcode als Referenz: Datei-Upload-Technik (Vorhandensein einer einzelnen hochgeladenen Datei als temporäre Datei auf der Serverseite) Beispielcode:1. Seite js-Verarbeitung
//点击选择完成文件后,触发上传文件操作,将文件上传至服务器临时目录 $('.upload-real-file').off().on('change', function(){ if(!$(this).val()){ return false; } var responseObjId = $(this).attr('response-id'); var responseObj = $('#' + responseObjId); $('#Form').ajaxSubmit({ url:'/aa/bb/uploadTmpApkTool', resetForm: false, dataType: 'json', beforeSubmit: function(option){ window.loading = layer.load(2); }, success: function(data, statusText){ layer.close(window.loading); if(data.status == 1){ responseObj.html(data.apkInfoHtml); var parentContainer = responseObj.parent().parent(), nameContainer = parentContainer.find('.file-name-container'); nameContainer.html(data.apkName); nameContainer.attr('title', data.apkName); responseObj.find('.file-tmp').html(data.fileInfo); //将文件信息存放于隐藏域中,以便在提交时能找到 $(submitId).removeAttr('disabled'); }else{ layer.alert(data.info); } }, error: function(data){ layer.close(window.loading); layer.alert('未知错误,请稍后再试!'); } }); return false;//防止dialog 自动关闭 });
2. Offensichtlich muss die Seite Dateiinformationen und Hintergrundverarbeitungscode (PHP) erhalten
rrree
3. Durch die Kombination der beiden Teile des Codes haben wir bereits die richtigen Informationen auf der Seite. Wir müssen das Formular nur am Ende absenden. Wenn Sie die Datei nicht an den Server senden möchten, verschieben Sie einfach die zuvor hochgeladene temporäre Datei, und schon sind Sie fertig!$apkConfig = $this->_getApkConfig(); $params = $this->getFilteredParam('get'); $subFile = $_FILES['apkToolFiles']; $apkName = $apkInfoHtml = ""; if(empty($subFile)) { $this->ajaxReturn(array('status' => -4, 'info' => '请选择要上传的文件')); } foreach ($subFile['name'] as $subKey => $subVal) { if ($subFile['name'][$subKey]) { $fileData = $this->_getFileData($subFile, $subKey); $checkData = array( 'maxSize' => $apkConfig['FILE_MAX_SIZE'], 'savePath' => $apkConfig['TMP_CHILD_PATH'], 'extArr' => array('apk'), 'releaseName' => str_replace('.apk', '', $fileData['fileName']), //特有 ); $checkResult = $this->_checkFileData($fileData, $checkData); if ($checkResult['status'] != 1) { $this->ajaxReturn($checkResult); } //移动文件 $filePath = $checkData['savePath'] . '/' . $fileData['fileName'] . '.tmp' . genRandStr(6);; $this->_moveUploadedFile($fileData['tmpName'], $filePath); $apkInfo = $this->_apkParser($filePath); //解析 if($apkInfo['UMENG_CHANNEL'] != 'UMENG_CHANNEL_VALUE') { @unlink($filePath); //删除无效文件 $this->ajaxReturn(array('status' => 0, 'info' => "UMENG_CHANNEL的值要是 UMENG_CHANNEL_VALUE才行")); } $tmpFileArr['file_info'] = array( 'name' => $subFile['name'][$subKey], 'type' => $subFile['type'][$subKey], 'tmp_name' => str_replace($apkConfig['TMP_CHILD_PATH'] . '/', '', $filePath), 'error' => $subFile['error'][$subKey], 'size' => $subFile['size'][$subKey], ); //转存该值,不再重复上传文件 } else { $this->ajaxReturn(array('status' => 0, 'info' => "文件不能为空")); } foreach ($apkInfo as $key => $val) { $apkInfoHtml .= "{$key}:{$val} \r\n"; } $apkName = $fileData['fileName']; $version = $apkInfo['versionName']; } $fileInfo = htmlspecialchars(json_encode($tmpFileArr['file_info'])); $fileInfoHtml = "<input name=\"apkToolFileTmp[]\" value='{$fileInfo}' type=\"hidden\"/>"; //一定要输出前使用htmlspecialchars, 否则不能正确显示页面值和获取至正确的文件信息 $this->ajaxReturn(array('status' => 1, 'info' => "上传成功", 'version' => $version, 'item' => $item, 'apkName' => $apkName, 'apkInfoHtml' => $apkInfoHtml, 'fileInfo' => $fileInfoHtml)); }
PHP-ImplementierungBackendDetaillierte Erläuterung der UnionPay-Zahlungs- und Rückerstattungsbeispiele
Parallelitätsimplementierung der Curl-Funktion in PHP reduziert die BackendZugriffszeit
Nachdem das PHP-Framework Java aufruft Terminal , lösen Sie das Problem, dass Parameter nicht übergeben werden können
Das obige ist der detaillierte Inhalt vonPraktische Tipps und Methoden zur Implementierung der Datei-Upload-Backend-Verarbeitung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Das Arbeiten mit der Datenbank in CakePHP ist sehr einfach. In diesem Kapitel werden wir die CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) verstehen.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
