Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wgrywanie plików/zdjęć
Forum PHP.pl > Forum > Przedszkole
zolasty
Witam, mam problem z wgrywaniem plików na serwer... To mój pierwszy projekt w php, nie mam żadnego doświadczenia oprócz teorii z marnej książki.
Ten kod miał przesyłać zdjęcia do folderu 'photos'. $plik miał pobierać cyfrę z bazy i przypisywać taką nazwę wgrywanemu zdjęciu, potem miał zainkrementowaną znowu przesyłać do bazy. Chmod folderu zmieniony na 777. Ale zdjęcia nie dodaje sad.gif
Z góry dziękuje za pomoc.
Kod
<?php

$dbh = mysql_connect ('xxxxxx', 'xxxxx', 'xxxxxx');
mysql_select_db('xxxxxx');

$plik = "SELECT nr FROM pomocnicza";

$lok="../photos/$plik".'.jpg';
is_uploaded_file($_FILES['fotka']);
move_uploaded_file($_FILES['fotka'],$lok);

$plik++;
$sql2= "UPDATE pomocnicza SET nr = '$plik'";

?>
<form action='' method='post' enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="50000">
Wgraj zdjęcie: <input name="fotka" type="file">
<input type='submit' value='wyslij'/>
</form>
Pilsener
  1. <?php
  2. move_uploaded_file($_FILES['fotka'],$lok);
  3. ?>
- jak możesz tak wykonywać te funkcje i nawet nie sprawdzać tego?

Na początek daj sobie:
  1. <?php
  2. print_r($_FILES);
  3. ?>
- i obejrzyj

Potem coś w tym guście:
  1. <?php
  2. if($_FILES['plik']['error'] == UPLOAD_ERR_OK){...;} //sprawdzamy, czy tablica nie zawiera błędów
  3. if(move_uploaded_file($_FILES['plik']['tmp_name'],$plik)){...;} //i czy plik się zapisuje w $plik
  4. ?>


Oczywiście można i trzeba to rozbudować o:
- sprawdzanie typu, rozmiaru, nazwy itp. etc.
- sprawdzanie, czy ścieżka do zapisu jest poprawna i ma odpowiednie prawa

I poczytaj koniecznie o:
  1. <?php
  2. $plik = "SELECT nr FROM pomocnicza";
  3. ?>
- odbieraniu danych z bazy, na razie przypisałeś zmiennej $plik tekst "Select..."
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.