使用PHP和Jquery提交上传后加载图片?不起作用
我希望在用户使用php和Jquery上传图像后立即显示图像?我尝试了以下代码。它不工作了?有什么更正吗 我的index1.php文件使用PHP和Jquery提交上传后加载图片?不起作用,php,jquery,image,file-upload,Php,Jquery,Image,File Upload,我希望在用户使用php和Jquery上传图像后立即显示图像?我尝试了以下代码。它不工作了?有什么更正吗 我的index1.php文件 <script language="javascript"> <?php if(isset($_FILES['image'])) { $file_name = $_FILES['image']['name']; $file_tmp = $_FILES['image']['tmp_name']; }
<script language="javascript">
<?php
if(isset($_FILES['image']))
{
$file_name = $_FILES['image']['name'];
$file_tmp = $_FILES['image']['tmp_name'];
}
$picture= $file_tmp."/".$file_name;
?>
</script>
<html>
<head>
Disp
</head>
<body>
<form name="example" action ="index1.php" method="post" enctype="multipart/form-data">
Choose an image
<input type = "file" name="image" />
<input type="submit" value="submit"/>
</form>
<div id="content">
The uploaded picture must come here
</div>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/imagedisplay.js"></script>
</body>
</html>
我的jquery文件是imagedisplay.js
$(document).ready(function(){
$('input[type="file"]').change(function(){
$(this).parent().submit();
$("#content").html('<img src="<?php echo $picture; ?>" >');
});
});
Thanks in advance.
在PHP中调用脚本-您不能像在JS文件中那样运行PHP代码,只需使用:
echo '<script type="text/javascript"> /* imagedisplay.js content */ </script>;
你的问题是你不明白什么是PHP。这是一种服务器端语言,一种预处理器。一旦页面被加载并发送给用户,所有的php都消失了,因为它所做的所有工作都是在服务器端完成的。因此,需要预处理器
您需要做的是创建一个单独的PHP文件,该文件将从jQuery发布的图像作为参数,并返回该图像的元数据,然后发布到该文件。您不希望在更改事件中包含此内容:
$("#content").html('<img src="<?php echo $picture; ?>" >');
而且,请确保您有适当的权限复制到$newDir我尝试过,但在第9行返回了一个错误,这是因为其中有引号-您应该在Echor中的任何单引号中添加“反斜杠-\”。非常感谢。现在没有错误,但我使用上载命令上载文件后,无法在div部分获取图像按钮…那是另一回事,起初我没有看到您的完整代码-您的代码引用了一个更改事件,但是当字段更改时,您仍然没有$picture,并且您不能像以前那样从javascript调用PHP-您需要将页面发送到某个地方,可能是同一个页面,然后在PHP运行之后,您将获得很多最终图片。似乎在制作一些实时网页之前,我需要深入学习。再次感谢您的澄清。我试过了,但仍然不起作用。您正在尝试查看临时目录中的图像。您需要首先将文件复制到web服务器可以读取的目录中。我将编辑我的答案。
<?php if ($picture): ?>
<script type="text/javascript">
$("#content").html('<img src="<?php echo $picture; ?>">');
</script>
<?php endif; ?>
if(isset($_FILES['image'])) {
$file_name = $_FILES['image']['name'];
$file_tmp = $_FILES['image']['tmp_name'];
$newDir = "/webdir-on-file-system";
$staticUrl = "http://static.url";
move_uploaded_file($file_tmp, $newDir . "/" .$file_name);
$picture = $staticUrl . "/" .$file_name;
}