Inhaltsverzeichnis
Artikel, die Sie interessieren könnten:
Heim Backend-Entwicklung PHP-Tutorial Beispielanalyse der Funktion zum Hochladen von cURL-Dateien, die mit den PHP-Kenntnissen PHP5 und PHP7 kompatibel ist

Beispielanalyse der Funktion zum Hochladen von cURL-Dateien, die mit den PHP-Kenntnissen PHP5 und PHP7 kompatibel ist

Jun 25, 2018 pm 04:52 PM
curl php5 php7 兼容 文件上传

In diesem Artikel wird hauptsächlich die Funktion zum Hochladen von cURL-Dateien vorgestellt, die mit PHP5 und PHP7 kompatibel ist. Er analysiert die relevanten Beurteilungen und spezifischen Bedienungsfähigkeiten bei der Verwendung von Curl zum Hochladen von Dateien für PHP5- und PHP7-Versionen anhand von Beispielen . Das folgende

Das Beispiel in diesem Artikel beschreibt die cURL-Datei-Upload-Funktion, die mit PHP5 und PHP7 kompatibel ist. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Warum sollte ich dieses Beispiel schreiben?

Ein Projekt muss sein Kürzlich über cURL hochgeladen.

Ich erinnerte mich, dass ich schon einmal eine ähnliche Implementierung durchgeführt hatte, also habe ich den vorherigen Code herausgekramt und das „@“-Präfix verwendet.

Aber die gleiche Methode funktioniert jetzt nicht! Später stellte sich heraus, dass es sich um ein Versionskompatibilitätsproblem handelte.

Im Sinne des Open-Source-Sharings und um ein Vergessen zu vermeiden, habe ich das folgende Beispielprogramm geschrieben.

Beispielprogramm

Besonderer Hinweis:

Insgesamt 3 Dateien, alle im Testverzeichnis des Webs abgelegt Stammverzeichnis und stellen Sie sicher, dass das Verzeichnis beschreibbar ist. Auch hochgeladene Bilder werden in diesem Verzeichnis gespeichert.

Wenn Sie die Programmdatei in einem anderen Verzeichnis ausführen möchten, müssen Sie die entsprechende URL im PHP-Code ändern, sonst läuft das Beispiel möglicherweise nicht.


<html>
<head>
  <title>上传示例</title>
</head>
<body>
  <p>下面上传文件到中间脚本:</p>
  <br />
  <form action="upload.php" method="post" enctype="multipart/form-data">
    选择文件:
    <input type="file" name="file" />
    <input type="submit" value="上传" />
  </form>
</body>
</html>
Nach dem Login kopieren



<?php
/**
 * 接收通过浏览器上传的文件
 *
 * @author Straiway<straiway@qq.com>
 * @site  http://straiway.sinaapp.com
 */
if (empty($_FILES[&#39;file&#39;])) {
  exit(&#39;没有上传指定名称的文件&#39;);
}
// 先保存到本地,再上传
$file   = $_FILES[&#39;file&#39;];
$file_name = __DIR__ . "/{$file[&#39;name&#39;]}";
move_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;], $file_name);
// 本地测试时,可能需要更改下面的URL
$ch = curl_init(&#39;http://localhost/test/upload_via_curl.php&#39;);
// 从php5.5开始,反对使用"@"前缀方式上传,可以使用CURLFile替代;
// 据说php5.6开始移除了"@"前缀上传的方式
if (class_exists(&#39;CURLFile&#39;)) {
  $file = new CURLFile($file_name);
  // 禁用"@"上传方法,这样就可以安全的传输"@"开头的参数值
  curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
} else {
  $file = "@{$file_name}";
}
// 从php5.2开始,要上传文件,必须给CURLOPT_POSTFIELDS传递数组,而不是字符串。
// 也只有传递数组,http头部的"Content-Type"才会设置成"multipart/form-data"
curl_setopt($ch, CURLOPT_POSTFIELDS, array(&#39;file_via_curl&#39; => $file));
// 将传输结果作为curl_exec的返回值,而不是直接输出
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$error = curl_error($ch);
if ($result) {
  $result_array = json_decode($result, true);
  if ($result_array) {
    if ($result_array[&#39;status&#39;]) {
      exit("上传成功!curl返回图片地址:{$result_array[&#39;data&#39;][&#39;url&#39;]}<br /><img src=&#39;{$result_array[&#39;data&#39;][&#39;url&#39;]}&#39; />");
    } else {
      exit("curl上传失败!错误信息:{$result[&#39;info&#39;]}");
    }
  } else {
    exit("发生错误,curl返回结果:{$result}");
  }
} else {
  exit(&#39;curl请求发生错误&#39; . var_export($error, true));
}
Nach dem Login kopieren



<?php
/**
 * 接受通过curl上传的文件。
 *
 * @author Straiway<straiway@qq.com>
 * @site  http://straiway.sinaapp.com
 */
if (empty($_FILES[&#39;file_via_curl&#39;])) {
  $return = array(&#39;status&#39; => 0, &#39;info&#39; => &#39;没有上传指定名称的文件&#39;);
} else {
  // 保存文件
  $file = $_FILES[&#39;file_via_curl&#39;];
  // 重命名文件,便于识别
  $base_name = explode(&#39;.&#39;, $file[&#39;name&#39;]);
  $base_name[0] .= &#39;_upload_var_curl&#39;;
  $base_name = implode(&#39;.&#39;, $base_name);
  $file_name = __DIR__ . "/{$base_name}";
  if (move_uploaded_file($file[&#39;tmp_name&#39;], $file_name)) {
    // 本地测试时,可能需要更改下面的URL
    $url  = "http://localhost/test/{$base_name}";
    $return = array(&#39;status&#39; => 1, &#39;info&#39; => &#39;上传成功&#39;, &#39;data&#39; => array(&#39;url&#39; => $url));
  } else {
    $return = array(&#39;status&#39; => 0, &#39;info&#39; => &#39;上传失败&#39;);
  }
}
exit(json_encode($return));
Nach dem Login kopieren


Referenzen

http://php.net/manual/en/function.curl-setopt . php

//www.jb51.net/article/139950.htm


Artikel, die Sie interessieren könnten:

PHP-Blockabfrage-Implementierungsmethodenanalyse PHP-Kenntnisse

PHP-Halbsuchalgorithmus Beispielanalyse PHP-Kenntnisse

PHP Half ( halb) Suchalgorithmus Beispielanalyse PHP-Kenntnisse


Das obige ist der detaillierte Inhalt vonBeispielanalyse der Funktion zum Hochladen von cURL-Dateien, die mit den PHP-Kenntnissen PHP5 und PHP7 kompatibel ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist der Unterschied zwischen PHP5 und PHP8? Was ist der Unterschied zwischen PHP5 und PHP8? Sep 25, 2023 pm 01:34 PM

Die Unterschiede zwischen PHP5 und PHP8 bestehen in Bezug auf Leistung, Sprachstruktur, Typsystem, Fehlerbehandlung, asynchrone Programmierung, Standardbibliotheksfunktionen und Sicherheit. Detaillierte Einführung: 1. Leistungsverbesserung: PHP8 führt einen JIT-Compiler ein, der einige hochfrequente Ausführungscodes kompilieren und optimieren kann, wodurch die Ausführungsgeschwindigkeit verbessert wird. PHP8 führt einige neue Sprachstrukturen und Funktionen ein. PHP8 unterstützt benannte Parameter, sodass Entwickler Parameternamen anstelle der Parameterreihenfolge usw. übergeben können.

Tutorial zum Aktualisieren der Curl-Version unter Linux! Tutorial zum Aktualisieren der Curl-Version unter Linux! Mar 07, 2024 am 08:30 AM

Um die Curl-Version unter Linux zu aktualisieren, können Sie die folgenden Schritte ausführen: Überprüfen Sie die aktuelle Curl-Version: Zunächst müssen Sie die im aktuellen System installierte Curl-Version ermitteln. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus: curl --version Dieser Befehl zeigt die aktuellen Informationen zur Curl-Version an. Verfügbare Curl-Version bestätigen: Bevor Sie Curl aktualisieren, müssen Sie die neueste verfügbare Version bestätigen. Sie können die offizielle Website von Curl (curl.haxx.se) oder verwandte Softwarequellen besuchen, um die neueste Version von Curl zu finden. Laden Sie den Curl-Quellcode herunter: Laden Sie mit Curl oder einem Browser die Quellcodedatei für die Curl-Version Ihrer Wahl herunter (normalerweise .tar.gz oder .tar.bz2).

Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Nov 08, 2023 pm 06:02 PM

Um das Hochladen und Herunterladen von Dateien in Workerman-Dokumenten zu implementieren, sind spezifische Codebeispiele erforderlich. Einführung: Workerman ist ein leistungsstarkes PHP-Framework für die asynchrone Netzwerkkommunikation, das einfach, effizient und benutzerfreundlich ist. In der tatsächlichen Entwicklung sind das Hochladen und Herunterladen von Dateien häufige Funktionsanforderungen. In diesem Artikel wird erläutert, wie das Workerman-Framework zum Implementieren des Hochladens und Herunterladens von Dateien verwendet wird, und es werden spezifische Codebeispiele aufgeführt. 1. Datei-Upload: Unter Datei-Upload versteht man die Übertragung von Dateien vom lokalen Computer auf den Server. Folgendes wird verwendet

So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen Nov 02, 2023 pm 04:36 PM

So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen. Laravel ist ein beliebtes PHP-Web-Framework, das eine Fülle von Funktionen und Tools bietet, um die Entwicklung von Webanwendungen einfacher und effizienter zu machen. Eine der am häufigsten verwendeten Funktionen ist das Hoch- und Herunterladen von Dateien. In diesem Artikel wird erläutert, wie Sie mit Laravel Funktionen zum Hoch- und Herunterladen von Dateien implementieren, und es werden spezifische Codebeispiele bereitgestellt. Datei-Upload Unter Datei-Upload versteht man das Hochladen lokaler Dateien auf den Server zur Speicherung. In Laravel können wir den Datei-Upload nutzen

Wie gehe ich mit der 301-Umleitung von Webseiten in PHP Curl um? Wie gehe ich mit der 301-Umleitung von Webseiten in PHP Curl um? Mar 08, 2024 am 11:36 AM

Wie gehe ich mit der 301-Umleitung von Webseiten in PHPCurl um? Wenn Sie PHPCurl zum Senden von Netzwerkanfragen verwenden, werden Sie häufig auf den von der Webseite zurückgegebenen Statuscode 301 stoßen, der darauf hinweist, dass die Seite dauerhaft umgeleitet wurde. Um diese Situation richtig zu handhaben, müssen wir der Curl-Anfrage einige spezifische Optionen und Verarbeitungslogik hinzufügen. Im Folgenden wird detailliert beschrieben, wie mit der 301-Umleitung von Webseiten in PHPCurl umgegangen wird, und es werden spezifische Codebeispiele bereitgestellt. 301-Redirect-Verarbeitungsprinzip 301-Redirect bedeutet, dass der Server eine 30 zurückgibt

Wie verwende ich gRPC, um das Hochladen von Dateien in Golang zu implementieren? Wie verwende ich gRPC, um das Hochladen von Dateien in Golang zu implementieren? Jun 03, 2024 pm 04:54 PM

Wie implementiert man den Datei-Upload mit gRPC? Erstellen Sie unterstützende Servicedefinitionen, einschließlich Anforderungs- und Antwortnachrichten. Auf dem Client wird die hochzuladende Datei geöffnet, in Blöcke aufgeteilt und dann über einen gRPC-Stream an den Server gestreamt. Auf der Serverseite werden Dateiblöcke empfangen und in einer Datei gespeichert. Der Server sendet nach Abschluss des Datei-Uploads eine Antwort, um anzugeben, ob der Upload erfolgreich war.

Die stabilste Version von Win10 Die stabilste Version von Win10 Dec 25, 2023 pm 07:58 PM

Viele Benutzer werden beim Betrieb des Computers auf Abstürze oder Bluescreens stoßen. Zu diesem Zeitpunkt müssen wir die stabilste Win10-Version für den Betrieb finden. Insgesamt ist sie sehr einfach zu bedienen und kann Ihren täglichen Gebrauch reibungsloser gestalten. Die stabilste Win10-Version in der Geschichte. 1. Win10-Originalsystem. Hier können Benutzer einfache Vorgänge verwenden. Das System verfügt über eine starke Stabilität, Sicherheit und Kompatibilität. Benutzer können die Schritte befolgen, um die perfekte Maschine zu erhalten gestrafft Die Version von win10 wurde strikt gestrafft und viele unnötige Funktionen und Dienste wurden gelöscht. Nach der Optimierung hat das System eine geringere CPU- und Speicherauslastung und läuft schneller. 3. Win10 Lite Edition 1909 ist auf mehreren Computern mit unterschiedlichen Hardwaremodellen installiert.

Vereinfachen Sie die Datei-Upload-Verarbeitung mit Golang-Funktionen Vereinfachen Sie die Datei-Upload-Verarbeitung mit Golang-Funktionen May 02, 2024 pm 06:45 PM

Antwort: Ja, Golang bietet Funktionen, die das Hochladen von Dateien vereinfachen. Details: Der MultipartFile-Typ bietet Zugriff auf Dateimetadaten und -inhalte. Die FormFile-Funktion ruft eine bestimmte Datei aus der Formularanforderung ab. Die Funktionen ParseForm und ParseMultipartForm werden zum Parsen von Formulardaten und mehrteiligen Formulardaten verwendet. Die Verwendung dieser Funktionen vereinfacht den Dateiverarbeitungsprozess und ermöglicht Entwicklern, sich auf die Geschäftslogik zu konzentrieren.

See all articles