首页 > 解决方案 > 无法在 javascript 中使用 php 读取文件夹内的图像

问题描述

我有一个文件夹,每 10 分钟图像将从服务器下载到特定文件夹到我的本地服务器,然后我有一个脚本可以在下载图像后读取图像,但不幸的是它不起作用。

我使用 ajax 到 php 文件从服务器下载图像,这是 php 文件中的代码:

while($row = $query->fetch_assoc()) {
                            $image_name = 'ads-id-'.$row['id'].'.gif';
                            $image_url = 'http://dev.websiteprojectupdates.com/axul-display/assets/ads/'.$image_name;
                            file_put_contents('assets/ads/'.$image_name, file_get_contents($image_url));
}

ajax 成功后,它执行以下代码来读取图像:

var output  =   '<?php $dirname = "assets/ads/"; ?>'
                    output  +=      '<?php $images = glob($dirname."*.gif"); ?>'
                    output  +=      '<?php foreach($images as $image) { ?>'
                    output  +=          '<?php echo '<div class="col-md-12">'; ?>'
                    output  +=              '<?php echo '<div class="card" style="border: 0px;">'; ?>'              
                    output  +=                      '<?php echo '<img class="card-img-top" src="'.$image.'" alt="ads" /><br />'; ?>'            
                    output  +=                  '<?php echo '</div>'; ?>'
                    output  +=          '<?php echo '</div>'; ?>'
                    output  +=      '<?php } ?>';
                $('.sl-ads-holder').append(output); 

标签: javascriptphpajax

解决方案


你想在 php 端做 php 部分,你错误地混合了 PHP 和 JavaScript。

首先,做你已经拥有的 php,然后你想在这个页面上运行另一个脚本,在第一个之后。

   while($row = $query->fetch_assoc()) {
      $image_name = 'ads-id-'.$row['id'].'.gif';
      $image_url = 'http://dev.websiteprojectupdates.com/axul-display/assets/ads/'.$image_name;
      file_put_contents('assets/ads/'.$image_name, file_get_contents($image_url));
   }

   $dirname = "assets/ads/";
   $images = glob($dirname."*.gif");

   foreach($images as $image): ?>

   <div class="col-md-12">
      <div class="card" style="border: 0px;">
         <img class="card-img-top" src="<?php echo $image ?>" alt="ads" /><br />
      </div>
   </div>

   <?php endforeach ?>

在您的 ajax 上,您将获得作为 html 的返回数据,您可以附加:

success: function(response) {
    $('.sl-ads-holder').append(response);
}

推荐阅读