Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] zmiana pliku uploadowanego
Forum PHP.pl > Forum > Przedszkole
artek
Mam błahy problem, otóż chcę zmienić nazwę pliku przenoszonego:

  1. rename($contentTemp, '$uploaded'.'_1');


cały czas nie dodaje tego co po kropce, próbowałem już z jednych uchem (') dwoma, bez...

Proszę o pomoc
nospor
rename($contentTemp, $uploaded.'_1');

ps: jestes pewien na 100% ze plik $contentTemp istnieje?
artek
Cytat(nospor @ 8.10.2015, 15:30:57 ) *
rename($contentTemp, $uploaded.'_1');

ps: jestes pewien na 100% ze plik $contentTemp istnieje?


raczej tak, skoro plik zostaje skopiowany, ale nadstąpiony

jest przekazywany do kolejnych metod, jade od samego dolu
  1. $contentTemp = $this->dirTemp . $imageName;
  2.  
  3. $imageName = $_FILES['image']['name'];
  4.  
  5. private $dirTemp = 'tmp/';




nikt nie ma żadnych pomysłów? bo ja nie znalazłem nic; /
Pyton_000
raczej tak !== 100% tak

var_dump($contentTemp);
artek
Cytat(Pyton_000 @ 12.10.2015, 14:12:50 ) *
raczej tak !== 100% tak

var_dump($contentTemp);


Rozwiązałem jednak to w inny sposób, teraz mam jeszcze inny problem, bo dodaje rozszerzenie, ale jak plik nazywał się "x.jpg", to dodaje mu np "_", ale wygląda to tak "x.jpg_", a chciałbym włożyć tekst pomiędzy nazwę, a rozszerzenie


A i druga sprawa, rename nie działało dlatego, że dodawałem więcej niż jeden znak, jak dodaje jeden, to działa, nie wiem dlaczego
Geniesis
Krótki test:
  1. <?php
  2. //raportowanie błędów
  3. ini_set("display_errors", 1);
  4. //deklaracja zmiennych
  5. $contentTemp = 'foo.txt';
  6. $uploaded = 'newName';
  7. rename($contentTemp, $uploaded);
  8. //zmienia nazwę pliku na newName
  9. -----
  10. $contentTemp = 'foo.txt';
  11. $uploaded = 'newName';
  12. rename($contentTemp, $uploaded . 'something');
  13. //zmienia nazwę na newNamesomething
  14. ----
  15. $contentTemp = 'foo.txt';
  16. $uploaded = 'newName.txt';
  17. rename($contentTemp, $uploaded . 'something');
  18. //zmienia nazwę na newName.txtsomething
  19. ?>


Jeżeli Twój plik oryginalnie zawiera rozszerzenie to twój kod zawsze będzie dodawać na końcu dopisany tekst czyli:
  1. $contentTemp = 'foo.jpg';
  2. $uploaded = 'bar.jpg';
  3. rename($contentTemp, $uploaded . '_newText'); // zwróci bar.jpg + _newText czyli bar.jpg_newText

Jeżeli twoja nazwa przybiera wzór 'nazwaPliku.typPliku można użyć wyrażenia regularnego po czym całość zapisać jako nowy tekst, czyli:
  1. preg_match("/([\s\S]*)?\.([\s\S]*)/", $uploaded, $arrayOldName); // znajdź i zapisz do tablicy o index 1 wszystko przed OSTATNIĄ kropką, znajdź i zapisz do tablicy o index 2 wszystko po OSTATNIEJ kropce
  2. $newName = $arrayOldName[1] . $myString . '.' . $arrayOldName[2]; // stara nazwa pliku bez rozszerzenia + mój nowy tekst, który chcę dodać + . + stare rozszerzenie
  3. rename($contentTemp, $newName); // zamieni foo.jpg na bar_newText.jpg
artek
Cytat(Geniesis @ 13.10.2015, 09:40:06 ) *
Krótki test:
  1. <?php
  2. //raportowanie błędów
  3. ini_set("display_errors", 1);
  4. //deklaracja zmiennych
  5. $contentTemp = 'foo.txt';
  6. $uploaded = 'newName';
  7. rename($contentTemp, $uploaded);
  8. //zmienia nazwę pliku na newName
  9. -----
  10. $contentTemp = 'foo.txt';
  11. $uploaded = 'newName';
  12. rename($contentTemp, $uploaded . 'something');
  13. //zmienia nazwę na newNamesomething
  14. ----
  15. $contentTemp = 'foo.txt';
  16. $uploaded = 'newName.txt';
  17. rename($contentTemp, $uploaded . 'something');
  18. //zmienia nazwę na newName.txtsomething
  19. ?>


Jeżeli Twój plik oryginalnie zawiera rozszerzenie to twój kod zawsze będzie dodawać na końcu dopisany tekst czyli:
  1. $contentTemp = 'foo.jpg';
  2. $uploaded = 'bar.jpg';
  3. rename($contentTemp, $uploaded . '_newText'); // zwróci bar.jpg + _newText czyli bar.jpg_newText

Jeżeli twoja nazwa przybiera wzór 'nazwaPliku.typPliku można użyć wyrażenia regularnego po czym całość zapisać jako nowy tekst, czyli:
  1. preg_match("/([\s\S]*)?\.([\s\S]*)/", $uploaded, $arrayOldName); // znajdź i zapisz do tablicy o index 1 wszystko przed OSTATNIĄ kropką, znajdź i zapisz do tablicy o index 2 wszystko po OSTATNIEJ kropce
  2. $newName = $arrayOldName[1] . $myString . '.' . $arrayOldName[2]; // stara nazwa pliku bez rozszerzenia + mój nowy tekst, który chcę dodać + . + stare rozszerzenie
  3. rename($contentTemp, $newName); // zamieni foo.jpg na bar_newText.jpg



rozwiązałem problem wczoaj, ale dziękuję za wyczerpującą odpowiedź smile.gif
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.