Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Formularz typu file inny na mac'u w Safari niż na PC w explorerze, Potrzebna sciezka do pliku a w safari jej nie ma (?)
Jero
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 6.10.2004

Ostrzeżenie: (0%)
-----


Robię baze danych plikow audio zgromadzonych na dysku. Potrzebne mi są ścieżki do plików, które za pomocą formularza
  1. <FORM ACTION=dodaj.php><INPUT TYPE=file NAME=filename size=50><INPUT TYPE=submit value=Dodaj><br><input type=radio name=typ value=atmosfery checked><font face='arial narrow' size=3 color=#8F0000>ATMOSFERY&nbsp;&nbsp;&nbsp;&nbsp;<input type=radio name=typ value=efekty>EFEKTY&nbsp;&nbsp;&nbsp;&nbsp;<input type=radio name=typ value=muzyka>MUZYKA</font></form>

wgrywam do bazy danych MySQL.
Problem jest następujący:
W Explorerze i Operze na PC wszystko jest ok. Ścieżka do pliku wybierana z pola file przesyłana jest do bazy z lekką obróbką:
  1. <?php
  2. $filename = $_GET[filename];
  3. $filename = strtr($filename, '', '/);
  4. $filename = str_replace("//", "/", $filename);
  5. ?>

Natomiast w Safari na Mac pole file wygląda zupełnie inaczej. Nie ma tam pola tekstowego tylko sam przycisk Browse, a po wybraniu pliku ukazuje się obok jedynie nazwa pliku bez ścieżki. Skrypt przestaje funkcjonować - plik dodaj.php otwiera się bez żadnych zmiennych przesyłanych z formularza (nie ma w polu adresu dodaj.php?filename=costam.wav&typ=atmosfery..... itd). Dlaczego tak się dzieje? Czy można w jakiś sposób pozyskać z formularza w Safari na mac'u ściężkę do pliku i przesłać ją do bazy danych MySQL?

Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jero
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 6.10.2004

Ostrzeżenie: (0%)
-----


Już doszedłem do wniosku, że pliki będą na serwerze, czyli na dysku przypisanym w Apache jako document.root, więc pliki będzie można bez problemu odtwarzać i otwierać. Póki co to będzie tylko na jednym komputerze bez dostępu do żadnej sieci, internetu itp. ze względów bezpieczeństwa danych, wirusów itp. Ścieżka do pliku jest konieczna, bo te pliki nie będą tylko do słuchania, ale też do pracy montażowej w aplikacjach audio. Najlepiej gdyby dało się po wyszukaniu pliku (oprócz posłuchania i zobaczenia ścieżki jak się do pliku dostać) otworzyć folder, w którym plik się znajduje i to jeszcze zaznaczony - już w środowisku systemowym. Wtedy już zostałoby tylko przeciągnąć plik do programu montażowego...
Chociaż właściwie, jeśli będzie wyświetlona ścieżka (poddana małej edycji - dodana litera dysku z przodu) to wystarczy ją zaznaczyć i skopiować do okienka importu pliku audio w programie do montazu. Na macu jest o tyle dobrze, że nie trzeba grzebać w folderach tylko ścieżkę można wpisać od razu.

Znalazłem fajny skrypt, który wypisuje listę plików wraz z linkami do nich i zwraca ścieżkę do pliku w postaci zmiennej $kat. Jedyny mankament jest taki, że jak się wejdzie do jakiegos folderu to link do pliku już sie nie zgadza, bo nie ma zmiennej opisującej scieżkę bezwzględną poprzedzającej nazwę pliku $plik.
Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
        <title>Lista plikow</title>
</head>
<body>
<?php
$kat = $_GET['katalog'];
if (empty($kat))
   $kat = ".";
  else
   $kat = realpath($kat);
echo "Zawartosc katalogu : " . $kat . "<br>";
echo "<hr><br>";
$katalog = dir($kat);

while($plik = $katalog->read()){
  if (is_dir($kat . "/" . $plik)) {
  echo "<A HREF='kat.php?katalog=$kat/$plik'>[" . $plik . "]</A><BR>";
  }
  else
{
  echo "<A HREF='" . $plik . "'>" . $plik . "</A><BR>";
}
}

$katalog->close();
?>
</body>
</html>

Ale jak trochę pomyślę to wymyślę... Teraz ide w kime. Pozdrawiam

Rozwiązałem zagadkę: Między liniki
Kod
$kat = $_GET['katalog'];
if (empty($kat))
wstawiłem
Kod
$sciezka = $kat;
A linie
Kod
echo "<A HREF='" . $plik . "'>" . $plik . "</A><BR>";
zamieniłem na
Kod
echo "<A HREF='".$sciezka."/".$plik."'>" . $plik . "</A><BR>";

Może się komuś przyda. Dobranoc.

Sorry. Nie przetestowałem tego w pełni. Jednak to nie takie proste. $sciezka zwraca rozne dziwne historie... które raz są ok a raz nie... wiec będzie to trzeba zrobić inaczej.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 02:40