Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP和Jquery提交上传后加载图片?不起作用_Php_Jquery_Image_File Upload - Fatal编程技术网

使用PHP和Jquery提交上传后加载图片?不起作用

使用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']; }

我希望在用户使用php和Jquery上传图像后立即显示图像?我尝试了以下代码。它不工作了?有什么更正吗

我的index1.php文件

   <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;
}