2013-01-18 53 views
0

http://www.shedlimited.debrucellc.comPHP,整個外部JavaScript文件

該網站允許用戶上傳圖片共享變量有價值的,通過PHP腳本(ajaxupload.php)存儲在$ uploaded_img,PHP腳本里面。我想我的新存儲圖像的路徑傳遞給JS文件,我發現這樣做的唯一途徑是由值寫入一個文本文件,這是極端矯枉過正

file_put_contents("testFile.txt", ""); 
$myFile = "testFile.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 

$stringData = $upload_image; 
fwrite($fh, $stringData); 
$stringData = "\n"; 
fwrite($fh, $stringData); 
fclose($fh); 

在同時,我也從我的index.php外部.js文件中運行的加載我的HTML5畫布等,

我設置一個全局變量獲取程序,外部.js文件裏面,這我能夠訪問和更新通過從我寫的URL在我的PHP腳本中的文件中讀取URL:

jQuery.get('scripts/testFile.txt', function(data) { 
sourcer = data; 
}); 

有什麼方法可以將URL值傳遞給源代碼,而無需手動將其插入到文本文件中?

回答

1

在您的php模板上添加一個塊到您的頭上。

<script type="text/javascript"> 
    var uploaded_img = '<?php echo json_encode($uploaded_img); ?>'; 
</script> 

JSON的編碼確保該變量被正確編碼,即使它是一個對象或數組。

如果它純粹是ajax的東西。只需在您的ajax響應中返回文件名即可。 所以發佈到你的ajax上傳,並讓你的ajax腳本返回一個帶有文件名的json對象。

因此,在您上傳腳本,在他底:

header('Content-type: application/json'); 
echo json_encode(array('filename'=>$uploaded_img)); 

而閱讀在JavaScript中response.filename。

+0

好吧,我會測試你放在那裏的第二個選項 –

+0

我結束了使用jQuery的.ajax結合json編碼,但它的工作原理等,謝謝! –

0

如何使用session variable來存儲上傳的圖像和ajax響應?

我認爲使用兩種方法都有好處:您可以在圖片上傳後立即在上傳頁面上直接使用該值。而對於會話變量,它將確保服務器端總是能夠獲取該值,如果您需要從另一個上下文訪問它。

+0

像使用會話變量從ajax_upload.php傳遞給index.php,我沒有想到,聽起來很方便,它會更新等,但正確?我也會測試這個 –

+0

會話變量可以從服務器端更新。例如:'$ _SESSION ['uploaded_image'] = $ uploaded_image;' –

+0

我的會話變量不會更新,直到我重新加載初始頁面索引頁面,所以我結束了使用.ajax –