ok to powiedzmy, tworzę formularz i dodatkowo 3 pola do załadowania plików
Tylko jakie zmiany wprowadzić w bazie danych?
W tabeli produkt zostawić 3 pola na zdjęcia, typu int, będące kluczem obcym do tabeli, którą utworzę (tabela obrazki)?
Chcę, aby przy zapisywaniu nowego produktu, po aktywacji skryptu do zapisywania, następowało:
1. Zapisywanie plików jpg na serwer i jednocześnie przypisanie tych ścieżek do zmiennych w polu zdjecie(1,2,3)
2. zapisanie danych do bazy danych
...a ...
I jak można by przerobić skrypt do wysyłania 3 plików jednocześnie?
Napisałam skrypt do wysyłania jednego pliku:
<?php
if($_FILES['plik1']['error']>0)
{
echo 'Pojawił się problem: '; switch ($_FILES['plik1']['error'])
{
case 1
: echo 'Rozmiar pliku przekroczył wartość upload_max_filesize'; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; break; case 2
: echo 'Rozmiar pliku przekroczył wartość max_file_size'; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; break; case 3
: echo 'Plik wysłany tylko częściowo'; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; break; case 4
: echo 'Nie wysłano żadnego pliku'; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; break; case 6
: echo 'Nie można wysłać pliku. Nie wskazano katalogu tymczasowego'; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; break; case 7
: echo 'Wysłanie pliku nie powiodło się. Nie zapisano pliku na dysku.'; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; break; }
}
// czy prawidłowy typ mime
if (($_FILES["plik1"]["type"] != "image/gif")
&& ($_FILES["plik1"]["type"] != "image/jpeg")
&& ($_FILES["plik1"]["type"] != "image/x-png")
&& ($_FILES["plik1"]["type"] != "image/png")
&& ($_FILES["plik1"]["type"] != "image/pjpeg"))
{
echo 'Problem: plik jest nieodpowidnim typem.'; }
// umieszczenie pliku w pożądanej lokalizacji
if (file_exists('../obrazki/' . $_FILES['plik1']['name'])) {
echo $_FILES["plik1"]["name"] . " już istnieje. <br /><a href=\"".$_SERVER["HTTP_REFERER"]."\">Powrót</a>"; }
else
{
$target = '../obrazki/'. $_FILES['plik1']['name'];
{
{
echo 'Problem: Plik nie może być skopiowany do katalogu'; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; }
}
else
{
echo 'Problem: możliwy atak podczas wysyłania pliku. Nazwa pliku: '; echo $_FILES['plik1']['name']; echo '<br /><a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; }
echo 'Plik wysłany.<br /><br />'; echo 'Plik został zapisany pod adresem: '. $target . '<br /><br />'; echo '<a href="'.$_SERVER['HTTP_REFERER'].'">Powrót</a>'; //ponowne sformatowanie zawartości pliku
}
?>
Nie wiem za bardzo jak go przerobić aby jednocześnie zapisywał 3 pliki i przydzielał im ściezki dostępu, jednak biorąc pod uwagę, że :
1 - żaden plik może nie zostać przesłany (produkt może nie posiadać obrazka)
2 - może zostać wysłany jeden, dwa, lub trzy pliki, nie musi być pełen komplet