http://www.shedlimited.debrucellc.com
该网站允许用户通过PHP脚本(ajaxupload.PHP(上传图像,该脚本存储在PHP脚本内部的$uploaded_img中。我想把我新存储的图像的PATH传递到一个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);
同时,我有一个外部.js文件正在运行,它加载我的html5 Canvas等,
我在外部.js文件中设置了一个全局变量sourcer,我可以通过从我在php脚本中写入URL的文件中读取URL来访问和更新该文件
jQuery.get('scripts/testFile.txt', function(data) {
sourcer = data;
});
有没有什么方法可以将URL值传递给sourcer,而不必手动将其插入文本文件?
在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。
使用会话变量来存储上传的图像和ajax响应如何处理?
我看到了同时使用这两种方法的优势:图像上传后,您可以直接在上传页面上使用该值。对于会话var,如果您需要从另一个上下文访问它,它将确保服务器端始终能够获得该值。