我一直在使用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;
答案 0 :(得分:0)
原始为什么 您收到403错误?将文件(名称)列表从php返回到您的脚本可能无法解决此错误,因为javascript最终会发出相同的请求。
另一方面,如果您知道可以从服务器端访问图像文件,那么您可以执行一些操作,例如返回图像的二进制值(javascript可以接受此操作)或生成关闭的文件。
<强>更新强> 如果服务器允许,您可以使用php中的exec命令从目录中返回文件列表:例如 \&LT; \
<?php
jpgs = exec('ls /your_directory_here');
echo json_encode(jpgs);
?>
&#13;
如果他们不允许exec(),他们可能不会,你可以试试...... http://www.w3schools.com/php/func_directory_readdir.asp
有帮助吗?