Я создал веб-сайт, на котором показаны файлы и каталоги определенной папки (названные документы). Пользователь может перемещаться по каталогам, и если он выберет файл (pdf doc и т. Д.), Он загрузит его. Проблема заключается в том, что он работает во всех браузерах, но именно в сафари, если пользователь выбирает файл (PDF DOC и т.д.) не будет загружать его и новое окно сказав, например:Ссылка работает во всех браузерах, кроме сафари (php code)
Запрошенный URL/root/documents/2013-01-13 1Î · ÎÎºÏ «Î ± κϻ Î · - 1Î · Î • Î £/ÎÎÎ ÎºÏ »Î¹ÎºÎ¬ 1Î · Ï, Î • κϫ Î ± ÎºÏ »Î · Ï, I «.I £. TÎœ.Î Î> Î-ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ сервер.
Странные буквы предполагают быть греческими. Я пытаюсь понять, почему и тот факт, что он развивается только в сафари, кажется мне очень странным. Вот код, который отвечает за содержание ссылок. Я поставил большую стрелку в качестве комментария над кодом, который отвечает за ссылки файлов (внутри «если»). Любая идея была бы действительно полезна.
<?php
function convert_to($source){
$encoding = mb_detect_encoding($source, "auto");
if ($encoding !== 'UTF-8'){
return mb_convert_encoding($source, 'UTF-8','UTF-8');
}
else {
return $source;
}
}
?>
<div id="container">
<img class="logo" src="images/logo.jpg" title="uop search engine" width="800" height="80" />
<table class="tbl">
<tr>
<td>
<p class="pl" >Πλοήγηση στα πρακτικά των συνελεύσεων</p>
</td>
<td style="text-align:right;">
<form action='' method="post">
<input type='search' id="search" name='s' autocomplete="off">
<input type='submit' id="button" value='Search' class="button1" >
</form>
</td>
</tr>
</table>
<div class="tfclear"></div>
</div>
<div id="container">
<?php
include "showresults.php";
?>
</div>
<table class="sortable">
<thead>
<tr>
<th>Filename</th>
<th>Type</th>
<th>Size <small>(KB)</small></th>
<th>Date Modified</th>
</tr>
</thead>
<tbody>
<?php
if (!isset($_GET['currentdirectory'])){
$rootDirectory=opendir("./documents");
//$currentDirectory=ROOT;
}
else {
$currentDirectory = $_GET['currentdirectory'];
$rootDirectory=opendir($currentDirectory);
}
//echo $currentDirectory;
//echo $rootDirectory;
starter($rootDirectory);
Function starter($myDirectory){
while($entryName=readdir($myDirectory)) {
$dirArray[]=$entryName;
}
function findexts ($filename) {
$filename=strtolower($filename);
$exts=split("[/\\.]", $filename);
$n=count($exts)-1;
$exts=$exts[$n];
return $exts;
}
closedir($myDirectory);
$indexCount=count($dirArray);
sort($dirArray);
$c=0;
for($index=0; $index < $indexCount; $index++) {
//echo $dirArray[$index];
if($_SERVER['QUERY_STRING']=="hidden"){
$hide="";
$ahref="./";
$atext="Hide";
}
else {
$hide=".";
$ahref="./?hidden";
$atext="Show";
}
if(substr("$dirArray[$index]", 0, 1) != $hide) {
$name=$dirArray[$index];
$namehref=$dirArray[$index];
$extn=findexts($dirArray[$index]);
if (!isset($_GET['currentdirectory'])){
$MYCDIR = "./documents";
}
else {
$MYCDIR = $_GET['currentdirectory'];
//echo $_GET['currentdirectory'];
$MYCDIR = iconv("UTF-8", "UTF-8",$MYCDIR);
if($c==0){
$parent="Γονικός κατάλογος";
print("
<tr class='$class'>
<td><a href='".dirname($_SERVER[PHP_SELF])."'>".$parent."</a></td>
</tr>");
$c=1;
}
}
// echo mb_detect_encoding($MYCDIR, "auto");
$size=number_format(filesize($MYCDIR."/".$dirArray[$index])/1024,2). ' KB';
$modtime=date("M j Y g:i A", filemtime($MYCDIR."/".$dirArray[$index]));
$timekey=date("YmdHis", filemtime($MYCDIR."/".$dirArray[$index]));
switch ($extn){
case "png": $extn="PNG Image"; break;
case "jpg": $extn="JPEG Image"; break;
case "svg": $extn="SVG Image"; break;
case "gif": $extn="GIF Image"; break;
case "ico": $extn="Windows Icon"; break;
case "txt": $extn="Text File"; break;
case "log": $extn="Log File"; break;
case "htm": $extn="HTML File"; break;
case "php": $extn="PHP Script"; break;
case "js": $extn="Javascript"; break;
case "css": $extn="Stylesheet"; break;
case "pdf": $extn="PDF Document"; break;
case "zip": $extn="ZIP Archive"; break;
case "bak": $extn="Backup File"; break;
default: $extn=strtoupper($extn)." File"; break;
}
if(is_dir($MYCDIR."/".$dirArray[$index])) {
$extn="<Directory>";
$size=folderSize($MYCDIR."/".$dirArray[$index]);
$size=number_format($size/1024,2). ' KB';
$class="dir";
}
else {
$class="file";
}
if($name=="."){
$name=". (Current Directory)";
$extn="<System Dir>";
}
if($name==".."){
$name=".. (Parent Directory)";
$extn="<System Dir>";
}
//echo $namehref;
//<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Here is the problem
if ($extn!="<Directory>"){
$hrefparameter = convert_to($MYCDIR."/".$namehref);
$hrefparameter = str_replace("./","/",$hrefparameter);
//echo mb_detect_encoding($hrefparameter, "auto");
print("
<tr class='$class'>
<td><a target='blank' href='".SUBFOLDER.$hrefparameter."'>".convert_to($name)."</a></td>
<td>$extn</td>
<td>$size</td>
<td sorttable_customkey='$timekey'>$modtime</td>
</tr>");
}
else {
$hrefparameter0 = $MYCDIR."/$namehref";
$hrefparameter = convert_to($MYCDIR."/$namehref");
print("
<tr class='$class'>
<td><a href='".SUBFOLDER."?currentdirectory=".urlencode($hrefparameter)."&cdir=".urlencode($hrefparameter0)."'>".convert_to($name)."</a></td>
<td>$extn</td>
<td>$size</td>
<td sorttable_customkey='$timekey'>$modtime</td>
</tr>");
}
//echo mb_detect_encoding($hrefparameter, "auto");
}
}
}
FUNCTION folderSize($dir){
$count_size = 0;
$count = 0;
$dir_array = scandir($dir);
foreach($dir_array as $key=>$filename){
if($filename!=".." && $filename!="."){
if(is_dir($dir."/".$filename)){
$new_foldersize = foldersize($dir."/".$filename);
$count_size = $count_size+ $new_foldersize;
}
else if(is_file($dir."/".$filename)){
$count_size = $count_size + filesize($dir."/".$filename);
$count++;
}
}
}
return $count_size;
}
?>
<div id="showing"></div>
<div id="results" class="results">
</div>
</tbody>
</table>
<form>
<input
type='button'
id="button"
value='DownloadAll'
class="button2"
<?php if (!isset($_GET['currentdirectory'])){ $_GET['currentdirectory']=""; } ?>
onClick="window.location='downloadZip.php?currentdirectory=<?php echo $_GET['currentdirectory']; ?>';" >
</form>
РНР serverside- браузер отметив, чтобы сделать с ним –
браузер может иметь отношение к той степени, что она, по какой-либо причине, запрашивая другой URL-адрес с сервера, чем другие запросы браузеров. Итак: что говорит журнал доступа на сервере? Можете ли вы сравнить с тем, что говорит журнал доступа для запроса из другого браузера? – Andrew
Andrew на данный момент у меня нет доступа к журналу доступа, но я проверю его как можно скорее. –