ホームページ ウェブフロントエンド jsチュートリアル Angularjs クライアントは画像ファイルの圧縮を実装し、examples_AngularJS をアップロードします

Angularjs クライアントは画像ファイルの圧縮を実装し、examples_AngularJS をアップロードします

May 16, 2016 pm 03:51 PM
angularjs アップロード クライアント

主に HTML5 キャンバスを使用して画像を圧縮し、次に dataURL を Blob ファイルに変換します。Blob オブジェクトは Formdata に直接割り当てることができます。

app.service('Util', function($q) {
  var dataURItoBlob = function(dataURI) {
    // convert base64/URLEncoded data component to raw binary data held in a string
    var byteString;
    if (dataURI.split(',')[0].indexOf('base64') >= 0)
      byteString = atob(dataURI.split(',')[1]);
    else
      byteString = unescape(dataURI.split(',')[1]);

    // separate out the mime component
    var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];

    // write the bytes of the string to a typed array
    var ia = new Uint8Array(byteString.length);
    for (var i = 0; i < byteString.length; i++) {
      ia[i] = byteString.charCodeAt(i);
    }

    return new Blob([ia], {
      type: mimeString
    });
  };

  var resizeFile = function(file) {
    var deferred = $q.defer();
    var img = document.createElement("img");
    try {
      var reader = new FileReader();
      reader.onload = function(e) {
        img.src = e.target.result;

        //resize the image using canvas
        var canvas = document.createElement("canvas");
        var ctx = canvas.getContext("2d");
        ctx.drawImage(img, 0, 0);
        var MAX_WIDTH = 800;
        var MAX_HEIGHT = 800;
        var width = img.width;
        var height = img.height;
        if (width > height) {
          if (width > MAX_WIDTH) {
            height *= MAX_WIDTH / width;
            width = MAX_WIDTH;
          }
        } else {
          if (height > MAX_HEIGHT) {
            width *= MAX_HEIGHT / height;
            height = MAX_HEIGHT;
          }
        }
        canvas.width = width;
        canvas.height = height;
        var ctx = canvas.getContext("2d");
        ctx.drawImage(img, 0, 0, width, height);

        //change the dataUrl to blob data for uploading to server
        var dataURL = canvas.toDataURL('image/jpeg');
        var blob = dataURItoBlob(dataURL);

        deferred.resolve(blob);
      };
      reader.readAsDataURL(file);
    } catch (e) {
      deferred.resolve(e);
    }
    return deferred.promise;

  };
  return {
    resizeFile: resizeFile
  };

});
ログイン後にコピー


現在、angualrjs はマルチフォーム データを介したファイルのアップロードをサポートしていないため、次のコードを使用して formdata

にファイルをアップロードできます。
app.controller('CompanyCtrl', function($http, Util) {

    Util.resizeFile(input.files[0]).then(function(blob_data) {
      var fd = new FormData();
      fd.append("imageFile", blob_data);
      $http.post('http://your.domain.com/upload', fd, {
        headers: {'Content-Type': undefined },
        transformRequest: angular.identity
      })
        .success(function(data) {
          $scope.model.company_pict = data[0];
        })
        .error(function() {
          console.log("uploaded error...")
        });
    }, function(err_reason) {
      console.log(err_reason);
    });


}
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VMware Horizo​​n Client を開けない [修正] VMware Horizo​​n Client を開けない [修正] Feb 19, 2024 pm 11:21 PM

VMware Horizo​​n Client を使用すると、仮想デスクトップに簡単にアクセスできます。ただし、場合によっては、仮想デスクトップ インフラストラクチャで起動の問題が発生することがあります。この記事では、VMware Horizo​​n クライアントが正常に起動できない場合に実行できる解決策について説明します。 VMware Horizo​​n クライアントが開かないのはなぜですか? VDI を構成するときに、VMWareHorizo​​n クライアントが開いていないと、エラーが発生する可能性があります。 IT 管理者が正しい URL と資格情報を提供していることを確認してください。すべて問題がない場合は、このガイドに記載されている解決策に従って問題を解決してください。 Windows コンピュータで VMW が開かない場合に VMWareHorizo​​n Client が開かない問題を修正する

VMware Horizo​​n クライアントが接続中にフリーズまたは停止する [修正] VMware Horizo​​n クライアントが接続中にフリーズまたは停止する [修正] Mar 03, 2024 am 09:37 AM

VMWareHorizo​​n クライアントを使用して VDI に接続すると、認証中にアプリケーションがフリーズしたり、接続がブロックされたりする状況が発生することがあります。この記事では、この問題を調査し、この状況を解決する方法を示します。 VMWareHorizo​​n クライアントでフリーズまたは接続の問題が発生した場合、問題を解決するために実行できることがいくつかあります。 VMWareHorizo​​n クライアントが接続中にフリーズするかスタックする問題を修正する Windows 11/10 で VMWareHorizo​​n クライアントがフリーズするか接続に失敗する場合は、以下の解決策に従ってください。 ネットワーク接続を確認する Horizo​​n クライアントを再起動する Horizo​​n サーバのステータスを確認する クライアント キャッシュをクリアする 修正方法

FastAPI でファイルのアップロードと処理を実装する方法 FastAPI でファイルのアップロードと処理を実装する方法 Jul 28, 2023 pm 03:01 PM

FastAPI でファイルのアップロードと処理を実装する方法 FastAPI は、使いやすく強力な最新の高パフォーマンス Web フレームワークで、ファイルのアップロードと処理のネイティブ サポートを提供します。この記事では、FastAPI フレームワークでファイルのアップロードおよび処理関数を実装する方法を学び、具体的な実装手順を示すコード例を示します。まず、必要なライブラリとモジュールをインポートする必要があります: fromfastapiimportFastAPI,UploadF

Kugou に独自の音楽をアップロードする簡単な手順 Kugou に独自の音楽をアップロードする簡単な手順 Mar 25, 2024 pm 10:56 PM

1. Kugou Music を開き、プロフィール写真をクリックします。 2. 右上隅にある設定アイコンをクリックします。 3. [音楽作品をアップロード]をクリックします。 4. [作品アップロード]をクリックします。 5. 曲を選択し、[次へ]をクリックします。 6. 最後に[アップロード]をクリックします。

QQ Musicに歌詞をアップロードする方法 QQ Musicに歌詞をアップロードする方法 Feb 23, 2024 pm 11:45 PM

デジタル時代の到来により、音楽プラットフォームは人々が音楽を入手する主な方法の 1 つになりました。しかし、曲を聴いていると歌詞がないことに気づき、非常に不安になることがあります。曲の内容や感情をより深く理解するために、曲を聴くときに歌詞が表示されることを望む人は多いでしょう。 QQ Music は中国最大の音楽プラットフォームの 1 つとして、ユーザーがより音楽を楽しみ、曲の含意を感じることができるように、ユーザーに歌詞をアップロードする機能も提供しています。 QQ Musicに歌詞をアップロードする方法を紹介します。初め

PHP MQTT クライアント開発ガイド PHP MQTT クライアント開発ガイド Mar 27, 2024 am 09:21 AM

MQTT (MessageQueuingTelemetryTransport) は、IoT デバイス間の通信に一般的に使用される軽量のメッセージ送信プロトコルです。 PHP は、MQTT クライアントの開発に使用できる、一般的に使用されるサーバー側プログラミング言語です。この記事では、PHP を使用して MQTT クライアントを開発する方法を紹介します。以下の内容が含まれます。 MQTT プロトコルの基本概念 PHPMQTT クライアント ライブラリの選択と使用例: PHPMQTT クライアントを使用した公開と使用

Win10パソコンでアップロード速度が遅い問題を解決する方法 Win10パソコンでアップロード速度が遅い問題を解決する方法 Jul 01, 2023 am 11:25 AM

Win10コンピュータのアップロード速度が遅い場合、どうすれば解決できますか?コンピュータを使用しているときに、ファイルのアップロード速度が非常に遅いと感じることがありますが、これはどういうことでしょうか?実際、これはコンピュータのデフォルトのアップロード速度が 20% であるため、アップロード速度が非常に遅いためです。詳細な操作方法を知らない友人も多いです。編集者は、Win11 で C ドライブをフォーマットする手順を以下にまとめました。 . 興味のある方はフォローしてみてください! Win10 のアップロード速度が遅い場合の解決策 1. win+R を押して「ファイル名を指定して実行」を呼び出し、「gpedit.msc」と入力して Enter を押します。 2. 管理テンプレートを選択し、[ネットワーク] - [Qos パケット スケジューラ] をクリックし、[制限] をダブルクリックして帯域幅を予約します。 3. 「有効」を選択します。

パソコンのアップロード速度を改善する方法 パソコンのアップロード速度を改善する方法 Jan 15, 2024 pm 06:51 PM

アップロード速度が非常に遅くなりますか?これは、多くの友人がコンピューターにアップロードするときに遭遇する問題だと思います。コンピューターを使用してファイルを転送するときにネットワークが不安定だと、アップロード速度が非常に遅くなります。では、ネットワークのアップロード速度を上げるにはどうすればよいでしょうか?以下では、エディターがコンピューターのアップロード速度が遅いという問題を解決する方法を説明します。ネットワーク速度に関しては、Web ページを開く速度、ダウンロード速度、アップロード速度も非常に重要であることは誰もが知っています。特に一部のユーザーはファイルをネットワーク ディスクにアップロードする必要があることが多いため、アップロード速度が速いと間違いなく節約になります。お金がたくさんあります。時間がなくなりました。アップロード速度が遅い場合はどうすればよいですか?以下では、エディターがコンピューターのアップロード速度が遅い場合の対処方法についての写真とテキストを提供します。コンピューターのアップロード速度が遅いという問題を解決するには、「スタート」-「ファイル名を指定して実行」または「Window キー」をクリックします。

See all articles