pobieranie oparte jest o nagłówki: Content-type: application/force-download, Content-disposition, Content-length itp
w związku z tym, przeglądarka wyświetla okno pobierania pliku, jednakże pobrany plik ma długość 0B
sam plik wysyłany jest poprzez
zawartość zmiennych:
$settings['uploadspath'] = './uploads'; $attachment['attachname'] = 'yyyymm/hash.attach';
każdy z folderów / plików ma uprawnienia do odczytu ( inne także )
uruchomienie prostego skryptu
echo 'Uploads: f: '.file_exists( $dir ).' d: '.is_dir( $dir ).' chmod: '.get_chmod( $dir ).' r: '.is_readable( $dir ).'<br>'; echo 'Date dir: f: '.file_exists( $ddir ).' d: '.is_dir( $ddir ).' chmod: '.get_chmod( $ddir ).' r: '.is_readable( $ddir ).'<br>'; echo 'File: f: '.file_exists( $file ).' d: '.is_dir( $file ).' chmod: '.get_chmod( $file ).' r: '.is_readable( $file ).'<br>';
daje taki wynik:
Kod
Uploads: f: 1 d: 1 chmod: 777 r: 1
Date dir: f: 1 d: 1 chmod: 755 r: 1
File: f: d: chmod: 0 r:
Date dir: f: 1 d: 1 chmod: 755 r: 1
File: f: d: chmod: 0 r:
wynika z tego, że PHP "nie widzi" pliku załącznika
tymczasem plik istnieje, utworzony za pomocą wspomnianych wcześniej zmiennych link do pliku
<a href="'.$settings['uploadspath'].'/'.$attachment['attachname'].'">link</a>
pozwala na normalne jego pobranie ( oczywiście z nazwą hash.attach ), taki plik ma poprawny rozmiar, po zmianie nazwy normalnie można go uruchomić
ma ktoś pomysł, jaka może być przyczyna braku dostępu do pliku ? i ewentualnie jak rozwiązać ten problem ?