2013-01-18 119 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 –