0

PHPを使用してマージされた画像があります(これはlocalhostにあります)。このファイルをサーバー php ファイルに自動的にアップロードして、それを受け入れるか、サーバー フォルダーにアップロードしたいと考えています。

通常の方法は、マルチパートのフォームを使用し、フォームを送信してアップロードすることです。手動で行うことなく、画像自体をphpに渡すか、フォームを自動的に送信する必要があります。

ディレクトリの写真を作成して権限を777に設定し、画像をサーバーに保存しようとしました

$outfile = "http://XXXXXX.com/pictures/testing.png";
$quality = 100;
imagejpeg($output,$outfile,$quality);

うまくいきませんでした

更新: ローカルホストでキャンバス todataurl を試してみましたが、正常に動作しますが、サーバーで試行するとエラーが発生します

XMLHttpRequest cannot load http://xxx.com/upload_img. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

そこで、アクセスオリジンを許可する方法を調べてみましたが、やり方がわかりません。誰かがこれを行う方法についての簡単なチュートリアルを教えてくれますか?

4

3 に答える 3

0

だから、Access-Control-Allow-Originでjquery $.postを使用して解決策を見つけました

Javascript

var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');
  var imageObj = new Image();
  imageObj.src = 'sample.jpg';
  imageObj.onload = function() {
    canvas.width = imageObj.width;
    canvas.height = imageObj.height;
    context.drawImage(imageObj, 0, 0);

    var strDataURI = canvas.toDataURL();
    strDataURI = strDataURI.substr(22, strDataURI.length);

    $.post("http://xxxx.com/upload_img",
    { 
        str: strDataURI
    },
    function(data){
     //to check if any error occurs
        alert(data);
    });

画像を受け入れる PHP ファイルは、ここでphp allow-control-allow-access ソリューションを取得しました

// * can be set to something else such as http://example.com/
header('Access-Control-Allow-Origin: *');

$data = base64_decode($_POST["str"]);

$urlUploadImages = "./uploads/";
$nameImage = "test.jpg";

$img = imagecreatefromstring($data);

imagejpeg($img, $urlUploadImages.$nameImage, 100);
imagedestroy($img);
于 2013-05-10T05:06:51.227 に答える