Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Upload ze zmianą nazwy
moto0095
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Witam mam oto taki skrypt uploadu:
  1. <?php
  2.  
  3. if(isset($_GET['dodaj'])){
  4.  
  5. $f = $_FILES['plik_upload'];
  6.  
  7.  
  8.  
  9. if(empty($f)){
  10.  
  11. die ('<b>Wypełnij poprawnie formularz</b><br><a target="_top" href="Fani_Galeria_Dodaj_Info.php">Wróć</a>');
  12.  
  13. }
  14.  
  15. echo '<div id="napis">';
  16.  
  17. if($f['type'] == 'image/jpeg')
  18.  
  19. {
  20.  
  21. echo '<center>Ładowanie<br><img src="load.gif" alt"load" /></center>';
  22.  
  23.  
  24.  
  25. if (move_uploaded_file($f['tmp_name'], 'upload/'.$f['name'])){
  26.  
  27. $name = $_FILES['plik_upload']['name'];
  28.  
  29. chmod('./upload/'.$f['name'], 0666);
  30.  
  31. echo "<script type=\"text/javascript\"> onload = function () {document.getElementById('napis').innerHTML='Plik został załadowany poprawnie...<br><a target=\"_top\" href=\"Fani_Galeria_Dodaj_Info.php\">Wróć</a>'}</script>";
  32.  
  33. }
  34.  
  35. else {
  36.  
  37. echo "<script type=\"text/javascript\"> onload = function () {document.getElementById('napis').innerHTML='Plik nie został załadowany.<br><a target=\"_top\" href=\"Fani_Galeria_Dodaj_Info.php\">Wróć</a>'}</script>";
  38.  
  39. }
  40.  
  41. }
  42.  
  43. else
  44.  
  45. {
  46.  
  47. die ('<b>Niedozwolony plik</b><br><a target="_top" href="Fani_Galeria_Dodaj_Info.php">Wróć</a>');
  48.  
  49. }
  50.  
  51. }
  52.  
  53. else{
  54.  
  55.  
  56. <form enctype="multipart/form-data" action="?dodaj" method="POST">
  57.  
  58. Plik
  59.  
  60. <input type="file" size="32" name="plik_upload" value="">
  61.  
  62. <input type="submit" value="Dodaj" />
  63.  
  64. </form>
  65.  
  66. ';
  67.  
  68. }
  69.  
  70. ?>


I chciałbym do niego podpiąć zmianę nazwy.
Chodzi mi oto aby było pole <input> "Podaj nazwę" i po wpisaniu do niego np: "fotka" to na serwerze zapisze się jako fotka.jpg
Go to the top of the page
+Quote Post
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Fajnie. I czego w związku z tym oczekujesz? Od razu uprzedzę, że gotowca na tym forum raczej nie dostaniesz, tak prosto to nie ma. Dodaj pole INPUT do formularza, po odebraniu sprawdź czy ktoś przypadkiem nie chce nam zrobić bubu, wpisując ciach, a potem popraw wywołanie move_uploaded_file() by korzystało z wpisanej nazwy.
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(moto0095 @ 25.03.2010, 17:53:47 ) *
I chciałbym do niego podpiąć zmianę nazwy.
Chodzi mi oto aby było pole <input> "Podaj nazwę" i po wpisaniu do niego np: "fotka" to na serwerze zapisze się jako fotka.jpg


Bezsensu, ja bym bardziej myślał o hashowaniu nazw z jakąś dodatkową zmienną np. microtime (nie możesz mieć dwóch plików o tej samej nazwie)
Go to the top of the page
+Quote Post
moto0095
post
Post #4





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


ale to będzie tylko dla mnie [admina]. I raczej nie przeszkadza mi że mogą być 2 takie same nazwy. raczej nie nadam 2 plikom takiej samej nazwy
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(moto0095 @ 25.03.2010, 18:03:12 ) *
ale to będzie tylko dla mnie [admina]. I raczej nie przeszkadza mi że mogą być 2 takie same nazwy. raczej nie nadam 2 plikom takiej samej nazwy

Tłumacze Ci, że w katalogu nie może się tak zdarzyć że dwa pliki będą identycznie się nazywać.
Go to the top of the page
+Quote Post
moto0095
post
Post #6





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


a ja ci tłumaczę że to tylko w celach administracyjnych i ja nie mam zamiaru nazywać 2 zdjęć tak samo

oki to może inne pytanie zadam.
Znak ktoś taki skrypt co by automatycznie zmieniał nazwy plików na :
1.jpg
2.jpg
3.jpg
itd. (IMG:style_emoticons/default/questionmark.gif)

Ten post edytował moto0095 25.03.2010, 20:18:20
Go to the top of the page
+Quote Post
eai
post
Post #7





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


Zerknij na ten projekt: http://code.google.com/p/nweb-image/ (pobierz

W "examples/upload-04.php", masz przykład z autonumerowaniem zdjęć.

A tutaj mała modyfikacja tego przykładu:
  1. try {
  2.  
  3. $upload = new Image_Upload();
  4.  
  5. // Autonumerowanie, zlicza ilość plików w katalogu upload i rozpoczyna od kolejnego
  6. $upload->setAutonumberStart(count(array_slice(scandir('upload'),2))+1);
  7.  
  8.  
  9. // Zmieniamy format nazywania (#### - to numer np 0001, 0002, 0003 itd...)
  10. $upload->setNameFormat ('uploaded-####');
  11.  
  12. // Jeżeli zostały przesłane dane formularza
  13. if($upload->upload('obraz')) {
  14.  
  15. // Zapisujemy do katalogu
  16. $upload->saveAll ('upload/', 100);
  17.  
  18. $message = 'Zdjęcia (' . count($upload->getImages()) . ') pomyślnie wgrane';
  19.  
  20.  
  21. $errors = $upload->getMessages();
  22. }
  23. }
  24. catch (Image_Upload_Exception $e)
  25. {
  26. die($e->getMessage());
  27. }


Jest to projekt mojego autorstwa, więc gdybyś miał problemy pisz PW to pomogę.
Pracuje obecnie nad manualem, ale jeszcze nie jest gotowy. Narazie jest tylko opis do generowania tokenów captcha: http://code.google.com/p/nweb-image/wiki/Captcha
Dokumentacja techniczna: http://image.nweb.pl/docs/
Przykłady użycia: http://image.nweb.pl/examples/

Ten post edytował eai 26.03.2010, 09:45:31
Go to the top of the page
+Quote Post
achill
post
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 28.08.2009
Skąd: wertykalne przez większość dnia

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


sorki ze sie podpinam ale temat wlasciwie ten sam tylko tyle ze cos mi nie gra

mam dwa pytania:
1)
jesli dobrze rozumiem
enctype="multipart/form-data"
pozwala na ladowanie nie tylko plikow ale rowniez wartosci tekstowych/liczbowych itp krotko mowiac moge miec input type="file" jak i type="text" czy tez "checkbox" w obrebie tego samego formularza?
2)
czy ktos moze mi tak po chlopsku wytlumaczyc czesci skladowe przesylane przez $_FILES (u mnie wyswietla 4 - po wpisaniu print_r($_FILES); )

z gory dziekuje

i jeszcze jedno:

chce aby przy opcji edytowania wpisu w bazie danych podawal mi aktualnie wybrany obraz
mam cos takiego ale nie dziala - pewnie 2 pierwsze pytania pomoga rozwiazac ten problem:

  1. <input name="logo_filename" type="file" id="logo_filename" value="<?php
  2. if (isset($_REQUEST['pid'])
  3. and $_REQUEST['action'] != nowy) {
  4. $sql = "SELECT logo FROM portproj WHERE pid='" . $_REQUEST['pid'] . "' ";
  5. $result = mysql_query($sql);
  6. $row = mysql_fetch_array($result);
  7.  
  8. echo $row['logo'];
  9. }
  10. ?>" />

ps. wartosc logo_filename z formularza powinna byc zapisywana w bazie w kolumnie logo - stad w input name="logo_filename" a $row['logo']

Ten post edytował achill 28.03.2010, 09:37:09
Go to the top of the page
+Quote Post
futura
post
Post #9





Grupa: Zarejestrowani
Postów: 39
Pomógł: 4
Dołączył: 4.01.2010

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


Kod
$nazwa_pliku_tmp = $_FILES['nazwa_pola_input_typu_file']['name'];
$rozszerzenie = rozszerzenie($nazwa_pliku_tmp); <- funkcja

function rozszerzenie($plik)
  {
    $path = pathinfo($plik);
        $roz = strtolower($path['extension']);
        return $roz;
    }


Jeżeli dodajesz nazwy zdjęć do bazy danych to:

Kod
$file_id = mysql_insert_id();<- pobranie id zdjęcia dodanego do bazy danych
$nazwa_pliku = $file_id.".".$rozszerzenie;


To jest tak w skrócie ogólna zasada tworzenia nazw plików 1.jpg itd.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 14:38