• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Upload zdjęcia - zmiana nazw kilku zdjęć w pętli

0 głosów
99 wizyt
pytanie zadane 16 września 2018 w PHP, Symfony, Zend przez Zbigniew Andrysiak Bywalec (2,400 p.)
zmienione kategorie 16 września 2018 przez JSHolic

Cześć Programiści.

Potrzebuję zmienić poniższy kod, aby nie tylko w bazie sql zapisywał mi plik ze zmienioną nazwą, ale również w katalogu.Prośba o pomoc

if(count($_FILES["file"]["name"]) > 0)
{
 //$output = '';

 for($count=0; $count<count($_FILES["file"]["name"]); $count++)
 {
  $file_name = $_FILES["file"]["name"][$count];
  $tmp_name = $_FILES["file"]['tmp_name'][$count];
  $file_array = explode(".", $file_name);
  $file_extension = end($file_array);
  if(file_already_uploaded($file_name, $db2))
  {
   $file_name = $file_array[0] . '-'. rand() . '.' . $file_extension;
  }
  $location = 'C:\xampp1\htdocs\stepbystep2\img' . $count.'.' .$file_extension;
  if(move_uploaded_file($tmp_name, $location))
  {
   $query = "
   INSERT INTO rotator (zdjecie, tekst, active) 
   VALUES ('".$count.'.' .$file_extension ."', '', 'TAK') 
   ";
   $statement = $db2->prepare($query);
   $statement->execute();
   
  }
 }
}

function file_already_uploaded($file_name, $db2)
{
 
 $query = "SELECT * FROM rotator WHERE zdjecie = '".$file_name."'";
 $statement = $db2->prepare($query);
 $statement->execute();
 $number_of_rows = $statement->rowCount();
 if($number_of_rows > 0)
 {
  return true;
  
 }
 else
 {
  return false;
 }
}

 

1
komentarz 16 września 2018 przez StOcK Mądrala (6,100 p.)
move_uploaded_file($nazwa_istniejacego_pliku, $sciezka_do_pliku_z_nowa_nazwa)
komentarz 16 września 2018 przez Zbigniew Andrysiak Bywalec (2,400 p.)

Czyli tak?

 $location = 'C:\xampp1\htdocs\stepbystep2\img' . $count.'.' .$file_extension;
  if(move_uploaded_file($tmp_name, $location))


gdzie

  $tmp_name = $_FILES["file"]['tmp_name'][$count];
to stara nazwa

 

komentarz 16 września 2018 przez StOcK Mądrala (6,100 p.)
Jeśli ścieżka jest po prawna to powinno działać.
komentarz 16 września 2018 przez Zbigniew Andrysiak Bywalec (2,400 p.)
W bazie zapisuje mi 0.jpg,1.jpg itd
Niestety w katalogu nie zapisuje mi się to zdjęcie.
Czyli robię coś nie tak. Robię to za pomocą Ajax, więc ciężko mi jest wyciągnąć var_dump.

$tmp_name - to stary plik - dopóki nie zacząłem mieszać było wszystko ok. Jak zacząłem zmieniać pod liczenie przestało zapisywać.

Może jest jakiś sposób wyciągnąć to co wysyłam przez ajax?
komentarz 16 września 2018 przez StOcK Mądrala (6,100 p.)
edycja 16 września 2018 przez StOcK
Tak, możesz śmiało użyć var_dump, wtedy w konsoli przeglądarki wchodzisz w Sieć (Network) i klikasz na plik do którego się odwołujesz, tam będzie zapytanie (Request) oraz odpowiedź (Response).

PS. nie używaj bezwzględnych ścieżek, bo przeniesiesz skrypt na serwer i nie będzie działać.
komentarz 16 września 2018 przez Zbigniew Andrysiak Bywalec (2,400 p.)
Hej, wiem, że nie należy używać bezwględnych ścieżek ale niestety na localhoście nie da się inaczej. Jak będę wgrywał na serwer to zmienię.

Zawartość odpowiedzi
var_dump pokazuje to co poniżej czyli $location. Szukam dalej :)
string(37) "C:\xampp1\htdocs\stepbystep2\img0.jpg"
komentarz 16 września 2018 przez Zbigniew Andrysiak Bywalec (2,400 p.)
Znalazłem

'C:\xampp1\htdocs\stepbystep2\img' . $count

Brakuje separatora. Niestety nie zapisuje nadal. Szukam dalej

'C:\xampp1\htdocs\stepbystep2\img\' . $count
komentarz 16 września 2018 przez StOcK Mądrala (6,100 p.)
<?php
$target_dir = "img/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
// Check if file already exists
if (file_exists($target_file)) {
    echo "Sorry, file already exists.";
    $uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
    echo "Sorry, your file is too large.";
    $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>



<!DOCTYPE html>
<html>
<body>

<form method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload" multiple>
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

Kompletne demo, do uploadu plików do folderu img.
Na localhoscie działa.

PS. demo nie jest moje, znalezione gdzieś w internecie wieki temu

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 105 wizyt
0 głosów
1 odpowiedź 67 wizyt
pytanie zadane 17 listopada 2018 w PHP, Symfony, Zend przez Ziito Użytkownik (670 p.)
0 głosów
2 odpowiedzi 151 wizyt
pytanie zadane 5 marca 2017 w PHP, Symfony, Zend przez prymex Obywatel (1,050 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

62,276 zapytań

108,403 odpowiedzi

226,291 komentarzy

34,909 pasjonatów

Przeglądających: 243
Pasjonatów: 14 Gości: 229

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...