簡體   English   中英

NgImgCrop net :: ERR_INVALID_URL但有效的URI

[英]NgImgCrop net::ERR_INVALID_URL but valid URI

我正在使用這個插件: https : //github.com/alexk111/ngImgCrop

裁剪后,我將圖像作為base64 URI圖像上傳到數據庫中。 (我知道這不是最好的方法,但這是最簡單的方法,我已經嘗試過僅保存路徑,但是它涉及許多其他功能)

然后,我想直接從該URI顯示圖像,並且出現以下錯誤:

jquery.js:4380 GET data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAgAElEQ…XgEqi9EedtfVj2wSuh70q2NjrCzAfaJLRsS37CgnNscsuYb+oMZJNRFnx3KnWINRP6GbxzWaFJ net::ERR_INVALID_URL   

問題是此URI有效。 復制鏈接地址並將其打印在諸如http://www.askapache.com/online-tools/base64-image-converter/之類的webservice base64-image-converter中時,它工作正常!

這是渲染之前的html元素:

<img ng-src="{{myCroppedImage}}" alt="img artiste">

這是渲染后的html元素:

<img ng-src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAgAElEQVR4Xmy915ct6XHlF3n[...]yZB5X7pp2aDQGlgSo4Vrzt5KURDcyJAiSoye98EnzrBE5lDQUNQAIEGhz+9Gpo8sGbxzWaFJ" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAgAElEQVR4Xmy915ct6XHlF3n[...]yZB5X7pp2aDQGlgSo4Vrzt5KURDcyJAiSoye98EnzrBE5lDQUNQAIEGhz+9Gpo8sGbxzWaFJ" alt="img artiste">

顯然NgImgCrop添加屬性src而不是僅管理ng-src,我認為這是導致錯誤的原因,但是幾乎無法編輯插件...

您是否有更好的主意或一段代碼,可以向我展示如何裁剪圖像並將其上傳到服務器端作為圖像的路徑(我正在使用CakePHP)。

通過將URI轉換為圖像,將圖像保存到服務器然后保存到數據庫的路徑來解決問題。 希望它可以幫助有需要的人。

這是來自ArtistsEdit.js的一些與API(AngularJs)通信所需的代碼

        $http({
            method : 'POST',
            url    : '/artists/edit.json',
            data   : $.param({
                  image: $scope.artist.image,
                  id: $scope.artist.id,
                  token: $scope.artist.token
           }),
            headers : {
                'Content-Type': 'application/x-www-form-urlencoded'
            } 
        })
        .success(function(res, status, headers, config) {
            console.log(res);
            $location.path('/artists/view/' + $scope.artist.id);
            Success.create(res);
        })
        .error(function(res, status, headers, config) {
            console.log(res);
            Error.create(res);
        });

這是來自ArtistsController.php的一些代碼,用於轉換和保存圖像(CakePHP)

   if( isset($q['Artist']['image']) ){
        $base64_string = $q['Artist']['image'];
        $output_file = 'img/artists/'.$d['id'].'.jpeg';
        $q['Artist']['image'] = '/'.$output_file;
        $ifp = fopen($output_file, "wb"); 
        $data = explode(',', $base64_string);
        fwrite($ifp, base64_decode($data[1])); 
        fclose($ifp);
    }
    $this->Artist->id = $d['id'];
    if( !$this->Artist->save($q) ){
        throw new InternalErrorException(__('Artist not edited'));
    }

/!\\不要忘記'sudo chmod -R 777 img'/!\\

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM