2013-05-09 69 views
-1

我有一個使用php合併的圖像(這是在localhost中)。我想自動上傳這個文件到一個服務器的php文件,它將接受它或上傳到服務器文件夾。用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. 

因此,我試圖檢查如何允許訪問來源,但不要rstand如何做到這一點。有人能指點我一個關於如何做到這一點的簡單教程,謝謝。

回答

0

我建議您使用javascript自動提交表單,並將該圖像上傳輸入類型放入您自動提交的表單標籤中。 JavaScript代碼會是這樣<script language="JavaScript">document.formname.submit();</script>

+0

您可以手動將文件放入輸入類型文件,而無需實際點擊它並選擇文件? – jhdj 2013-05-09 05:41:38

+1

@jhdj你不能。這將是一個很大的安全問題。 – Gustek 2013-05-09 05:45:07

+0

好的感謝信息將嘗試檢查canvastodataurl做到這一點 – jhdj 2013-05-09 05:54:47

1

我相信你必須使用一個路徑如('C:\path\filename')爲imagejpeg功能

+0

需要澄清這是從本地主機到服務器所以不要認爲('C:\路徑\文件名')將工作,將更新問題,使這個清楚的感謝 – jhdj 2013-05-09 05:56:00

0

於是找到了解決辦法使用jQuery $。員額與一些事情,而不是URL(http://example.com)訪問控制允許來源

的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允許控制,允許訪問解決方案here

// * 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); 
相關問題