期待使用php脚本解决403错误

时间:2015-12-17 21:19:54

标签: javascript php

我一直在使用JavaScript从目录和本地主机上检索我的图像这很好用,但现在我在远程服务器上运行它我得到了403 Forbidden Error,我知道为什么会这样但是我正在寻找为了解决这个问题,保持我的Java功能大致相同,所以我在考虑是否将index.php放在gallery文件夹中并使用路径调用它并让它将文件列表返回给我的JavaScript和a它可以继续下去。

我如何解决这个问题,因为我目前对PHP不太满意?感谢。



<script type="text/javascript">
  $(document).ready(function() {
    $("a").click(function() {
      var dir_path = $(this).data("albumid");
      LoadGallery(dir_path);
      return false;
    });
  });

function LoadGallery(dir_path) {
  $.ajax({
    url: dir_path,
    success: function(data) {

      $(".image-container").empty();

      $(data).find("a:contains(.jpg), a:contains(.png), a:contains(.jpeg)").each(function() {
        this.href.replace(window.location.host, "").replace("http:///", "");
        var file = dir_path + $(this).text();
        $(".image-container").append($("<a href='javascript:;' class='thumb' data-src='" + file + "'><img src='" + file + "' title='Click to enlarge' alt='#'/></a>"));

        if ($(".image-container").children("a").length === 30) {
          return false;
        }
      });

      $(".image-container").append("<strong><p>Click on a thumb nail to show a larger image.</p></strong>");

      $(".thumb").bind('click', function() {
        var Popup = "<div class='bg'></div>" + "<div class='wrapper'><img src='<img src=''/>" + "<label href='javascript:;' class='prev-image'>«</label><label href='javascript:;' class='next-image'>»</label><a href='javascript:;' class='close' title='Close'>Close</a>";
        var Img = $(this).attr("data-src");
        $("body").prepend(Popup);
        $(".bg").height($(window).height() * 4);
        $(".wrapper img").attr("src", Img);

        $(".prev-image").bind('click', function() {
          var prev = $(".image-container").find("img[src='" + Img + "']").parent().prev('a').find("img").attr('src');
          if (!prev || prev.length === 0)
            return false;
          else {
            $(".wrapper img").attr("src", prev);
            Img = prev;
          }
        });

        $(".next-image").bind('click', function() {
          var next = $(".image-container").find("img[src='" + Img + "']").parent().next('a').find("img").attr('src');
          if (!next || next.length === 0)
            return false;
          else {
            $(".wrapper img").attr("src", next);
            Img = next;
          }
        });

        $(".close").bind('click', function() {
          $(this).siblings("img").attr("src", "")
            .closest(".wrapper").remove();
          $(".bg").remove();
        });
      });
    }
  });
}
</script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

原始为什么 您收到403错误?将文件(名称)列表从php返回到您的脚本可能无法解决此错误,因为javascript最终会发出相同的请求。

另一方面,如果您知道可以从服务器端访问图像文件,那么您可以执行一些操作,例如返回图像的二进制值(javascript可以接受此操作)或生成关闭的文件。

<强>更新 如果服务器允许,您可以使用php中的exec命令从目录中返回文件列表:例如     \&LT; \

&#13;
&#13;
<?php
    jpgs = exec('ls /your_directory_here');
    echo json_encode(jpgs);
?>
&#13;
&#13;
&#13;

如果他们不允许exec(),他们可能不会,你可以试试...... http://www.w3schools.com/php/func_directory_readdir.asp

有帮助吗?