Heim Backend-Entwicklung PHP-Tutorial Informationen zum Hochladen von Bildern in die Qiniu Cloud in Front-End-JS in Laravel

Informationen zum Hochladen von Bildern in die Qiniu Cloud in Front-End-JS in Laravel

Jun 19, 2018 pm 03:59 PM

In diesem Artikel wird hauptsächlich der Beispielcode von Front-End-JS in Laravel zum Hochladen von Bildern in die Qiniu Cloud vorgestellt. Er hat einen gewissen Referenzwert.

Im Folgenden wird der Browser verwendet Laden Sie Bilder in Laravel hoch. Hier sind nur einige einfache Prozessbeispiele.

1. Stellen Sie zunächst die entsprechende js-Datei vor. Natürlich gibt es viele andere Möglichkeiten zum Herunterladen, z. B. Bower, Git und das SDK der offiziellen Website Qiniu js basiert auf dem Plupload-Plug-In und muss daher Plupload herunterladen. Es wird empfohlen, 2.1.1 bis 2.1.9 zu verwenden.

<script src="https://cdn.staticfile.org/jquery/2.2.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/plupload/2.1.9/moxie.js"></script>
<script src="https://cdn.staticfile.org/plupload/2.1.9/plupload.dev.js"></script>
<script src="https://cdn.staticfile.org/qiniu-js-sdk/1.0.14-beta/qiniu.min.js"></script>
Nach dem Login kopieren

2. Erstellen Sie eine Schaltfläche zum Auswählen einer Datei


  <p id="container">
    <a class="btn btn-default btn-lg " id="pickfiles" href="#" rel="external nofollow" >
      <span>选择文件</span>
    </a>
  </p>
Nach dem Login kopieren

3. Uploader initialisieren


(Bitte stellen Sie sicher, dass plupload bei der Initialisierung auf der Seite eingeführt wurde. Hier benötigen wir einen Uptoken-Upload-Anmeldedatensatz, der vom PHP-Backend generiert und bereitgestellt werden muss). Lassen Sie uns gleich darüber sprechen, wie Sie den Token erhalten.

  function uploaderReady(token) {
    console.log(token);
    var uploader = Qiniu.uploader({
      runtimes: &#39;html5,flash,html4&#39;,   // 上传模式,依次退化
      browse_button: &#39;pickfiles&#39;,   //上传按钮的ID
      uptoken: token, // uptoken是上传凭证,由其他程序生成
     // uptoken_url: &#39;/uptoken&#39;,    // Ajax请求uptoken的Url,强烈建议设置(服务端提供)
     // uptoken_func: function(){    // 在需要获取uptoken时,该方法会被调用
     //  // do something
     //  return uptoken;
     // },
      get_new_uptoken: false,       // 设置上传文件的时候是否每次都重新获取新的uptoken
      unique_names: true,       // 默认false,key为文件名。若开启该选项,JS-SDK会为每个文件自动生成key(文件名)
      //save_key: true,         // 默认false。若在服务端生成uptoken的上传策略中指定了sava_key,则开启,SDK在前端将不对key进行任何处理
      domain: &#39;http://ovngj7u9c.bkt.clouddn.com&#39;,  // bucket域名,下载资源时用到,必需
      container: &#39;container&#39;,       // 上传区域DOM ID,默认是browser_button的父元素
      max_file_size: &#39;100mb&#39;,       // 最大文件体积限制
      flash_swf_url: &#39;path/of/plupload/Moxie.swf&#39;, //引入flash,相对路径
      max_retries: 1,           // 上传失败最大重试次数
      dragdrop: true,           // 开启可拖曳上传
      drop_element: &#39;container&#39;,     // 拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
      chunk_size: &#39;4mb&#39;,         // 分块上传时,每块的体积
      auto_start: true,          // 选择文件后自动上传,若关闭需要自己绑定事件触发上传

      init: {
        &#39;FilesAdded&#39;: function (up, files) {
          plupload.each(files, function (file) {
            // 文件添加进队列后,处理相关的事情
          });
        },
        &#39;BeforeUpload&#39;: function (up, file) {
          // 每个文件上传前,处理相关的事情
        },
        &#39;UploadProgress&#39;: function (up, file) {
          // 每个文件上传时,处理相关的事情
        },
        &#39;FileUploaded&#39;: function (up, file, info) {
          // 每个文件上传成功后,处理相关的事情
          // 其中info是文件上传成功后,服务端返回的json,形式如:
          // {
          //  "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
          //  "key": "gogopher.jpg"
          // }
          // 获取url路径 传入后台保存到数据库
           var domain = up.getOption(&#39;domain&#39;);
           var url = JSON.parse(info);
           var sourceLink = domain +"/"+ url.key;

           $.ajax({
            url: &#39;/image&#39;,
            type: &#39;POST&#39;,
            dataType : &#39;json&#39;,
            data: {
              &#39;_token&#39;:"{{ csrf_token() }}",
              "url":sourceLink
            },
           });
        },
        &#39;Error&#39;: function (up, err, errTip) {
          console.log(errTip);
        },
        &#39;UploadComplete&#39;: function () {
          //队列文件处理完毕后,处理相关的事情
        },
        &#39;Key&#39;: function (up, file) {
          // 若想在前端对每个文件的key进行个性化处理,可以配置该函数
          // 该配置必须要在unique_names: false,save_key: false时才生效
          var key = "";
          // do something with key here
          return key
        }
      }
    });
  }
Nach dem Login kopieren

4. Das Backend erhält das Upload-Zertifikat-Token


Zuerst installieren wir einen Qiniu-Packagisten und eine Github-Adresse.

composer require "overtrue/laravel-filesystem-qiniu" -vvv
Nach dem Login kopieren

Fügen Sie

&#39;providers&#39; => [
  // Other service providers...
  Overtrue\LaravelFilesystem\Qiniu\QiniuStorageServiceProvider::class,
],
Nach dem Login kopieren

in app/config.php und dann in config/ hinzu. filesystems.php konfigurieren Sie Ihre Qiniu-Informationen

<?php

return [
  //...
  &#39;qiniu&#39; => [
    &#39;driver&#39;   => &#39;qiniu&#39;,
    &#39;access_key&#39; => env(&#39;QINIU_ACCESS_KEY&#39;, &#39;xxxxxxxxxxxxxxxx&#39;),
    &#39;secret_key&#39; => env(&#39;QINIU_SECRET_KEY&#39;, &#39;xxxxxxxxxxxxxxxx&#39;),
    &#39;bucket&#39;   => env(&#39;QINIU_BUCKET&#39;, &#39;test&#39;),
    &#39;domain&#39;   => env(&#39;QINIU_DOMAIN&#39;, &#39;xxx.clouddn.com&#39;), // or host: https://xxxx.clouddn.com
  ],
  //...
];
Nach dem Login kopieren

und schreiben Sie dann den Code, um das Token in der Store-Methode Ihres Controllers zu erhalten, damit es von verwendet werden kann die Frontend-Anfrage, um

public function store()
{
  $disk = Storage::disk(&#39;qiniu&#39;);
  $token = $disk->getUploadToken();
  
  return response()->json([&#39;uptoken&#39;=>$token]);
}
Nach dem Login kopieren

5 zu erhalten 🎜>Um das zu verstehen, schreiben wir einen Ajax, um den Store anzufordern. Natürlich können Sie die Anforderungsadresse auch im Attribut uptoken_url im Uploader festlegen.


function getTokenMessage() {
  $.ajax({
    url: &#39;你的控制器地址&#39;,
    type: &#39;POST&#39;,
    data: {&#39;_token&#39;:"{{ csrf_token() }}"},
    dataType : &#39;json&#39;,
    success: function (data) {
      var obj = data;
      // 请求成功之后,调用刚刚写好的uploaderReady方法,把token传入过去
      uploaderReady(obj.uptoken);
    }
  });
}
//让页面初始化的时候就请求
$(document).ready(function(){
  getTokenMessage();
});
Nach dem Login kopieren

Das reicht fast aus. Weitere Vorgänge finden Sie im offiziellen js-Dokument von Qiniu Cloud

Das Obige ist der Inhalt Ich hoffe, dass der gesamte Inhalt dieses Artikels für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!


Verwandte Empfehlungen:

Für die Funktionen des Laravel-Framework-Vorlagenladens und -Zuweisens von Variablen und einfaches Routing

Das obige ist der detaillierte Inhalt vonInformationen zum Hochladen von Bildern in die Qiniu Cloud in Front-End-JS in Laravel. 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)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Wie funktioniert die Session -Entführung und wie können Sie es in PHP mildern? Apr 06, 2025 am 12:02 AM

Die Hijacking der Sitzung kann in den folgenden Schritten erreicht werden: 1. Erhalten Sie die Sitzungs -ID, 2. Verwenden Sie die Sitzungs -ID, 3. Halten Sie die Sitzung aktiv. Zu den Methoden zur Verhinderung der Sitzung der Sitzung in PHP gehören: 1. Verwenden Sie die Funktion Session_regenerate_id (), um die Sitzungs -ID zu regenerieren. 2. Store -Sitzungsdaten über die Datenbank, 3. Stellen Sie sicher, dass alle Sitzungsdaten über HTTPS übertragen werden.

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie debugge ich den CLI -Modus in PhpStorm? Wie debugge ich den CLI -Modus in PhpStorm? Apr 01, 2025 pm 02:57 PM

Wie debugge ich den CLI -Modus in PhpStorm? Bei der Entwicklung mit PHPSTORM müssen wir manchmal den PHP im CLI -Modus (COMS -Zeilenschnittstellen) debuggen ...

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

See all articles