Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP][MySQL]Upload pliku na FTP link do bazy danych
bolus150
post 15.03.2015, 15:46:17
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Witam, chciałbym z tego zrobić, żeby wysyłany plik szedł na serwer FTP, a link do bazy danych. Może mi ktoś pomóc?
  1. <html><body>
  2. <form method="post" enctype="multipart/form-data">
  3. <table width="350" border="0" cellpadding="1"
  4. cellspacing="1" class="box">
  5. <tr>
  6. <td>Wybierz plik</td></tr>
  7. <tr>
  8. <td>
  9. <input type="hidden" name="MAX_FILE_SIZE"
  10. value="16000000">
  11. <input name="userfile" type="file" id="userfile">
  12. </td>
  13. <td width="80"><input name="upload"
  14. type="submit" class="box" id="upload" value=" Upload "></td>
  15. </tr>
  16. </table>
  17. </form>
  18. </body>
  19. </html>
  20. <?php
  21.  
  22. if (isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) {
  23. $fileName = $_FILES['userfile']['name'];
  24. $tmpName = $_FILES['userfile']['tmp_name'];
  25. $fileSize = $_FILES['userfile']['size'];
  26. $fileType = $_FILES['userfile']['type'];
  27. $_FILES['userfile']['type']) : mysql_real_escape_string(
  28. stripslashes($_FILES['userfile'])));
  29. $fp = fopen($tmpName, 'r');
  30. $content = fread($fp, filesize($tmpName));
  31. $content = addslashes($content);
  32. fclose($fp);
  33. $fileName = addslashes($fileName);
  34. }
  35. $con = mysql_connect('....', '...', '...') or die(mysql_error());
  36. $db = mysql_select_db('...', $con);
  37. if ($db) {
  38. $query = "INSERT INTO upload (name, size, type, content ) " .
  39. "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
  40. mysql_query($query) or die('Error, query failed');
  41. echo "<br>Plik $fileName został przesłany.<br>";
  42. } else {
  43. echo "Błąd przesyłania pliku.";
  44. }
  45. }
  46. ?>
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post 15.03.2015, 19:49:26
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i z czym masz problem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bolus150
post 15.03.2015, 23:09:24
Post #3





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Jak to przeształcić, żeby zapisywało tak jak chcę.

Witam, jakby ktoś mógł sprawdzić mi to co tu jest źle to byłbym wdzięczny

Zapytanie:
  1. $query = "INSERT INTO upload (name, size, type, content, opis ) " .
  2. "VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$opis')";


Formularz:
  1. <input type="hidden" name="MAX_FILE_SIZE"
  2. value="16000000">
  3. <input name="userfile" type="file" id="userfile">
  4. </td><tr>
  5. <td>
  6. Opis <INPUT type="text" name="opis"cols="200" rows="100">
  7. </td><tr>
  8. <td width="80"><input name="upload"
  9. type="submit" class="box" id="upload" value=" Upload "></td>

Dlaczego nie chcę mi w kolumnę opis dodawać napisu który wpisuję w formularz.
Go to the top of the page
+Quote Post
boro11
post 15.03.2015, 23:16:20
Post #4





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


A odbierasz te dane z formularza?

Dodaj:

  1. $opis = $_POST['opis'];


Go to the top of the page
+Quote Post
com
post 15.03.2015, 23:32:40
Post #5





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


pokaz kod który generuje ten zapis i <INPUT type="text" name="opis" cols="200" rows="100"> brakowało przerwy
Go to the top of the page
+Quote Post
boro11
post 15.03.2015, 23:34:30
Post #6





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Cytat(com @ 15.03.2015, 23:32:40 ) *
pokaz kod który generuje ten zapis i <INPUT type="text" name="opis" cols="200" rows="100"> brakowało przerwy



A tak z ciekawości ta przerwa coś zmienia? Jeśli jest zamknięte poprawnie przy użyciu "?
Go to the top of the page
+Quote Post
com
post 15.03.2015, 23:54:20
Post #7





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


nie zmienia ale taki kod nie jest poprawny i może się okazać że gdzieś jednak nie zadziała smile.gif
Go to the top of the page
+Quote Post
bolus150
post 16.03.2015, 18:20:00
Post #8





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Tak wygląda cały kod. Chciałbym, żeby wysyłał plik (najlepiej do bazy link, a plik do FTP) i opis do bazy.
Poprawiłem błąd o którym była wcześniej mowa i nadal to samo.
  1. <?php
  2. include 'header.php';
  3. include 'menu.php';
  4. ?>
  5.  
  6. <html><body>
  7. <form method="post" enctype="multipart/form-data">
  8. <table width="350" border="0" cellpadding="1"
  9. cellspacing="1" class="box">
  10. <?php
  11.  
  12. if (isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) {
  13. $fileName = $_FILES['userfile']['name'];
  14. $tmpName = $_FILES['userfile']['tmp_name'];
  15. $fileSize = $_FILES['userfile']['size'];
  16. $fileType = $_FILES['userfile']['type'];
  17. $_FILES['userfile']['type']) : mysql_real_escape_string(
  18. stripslashes($_FILES['userfile'])));
  19. $fp = fopen($tmpName, 'r');
  20. $content = fread($fp, filesize($tmpName));
  21. $content = addslashes($content);
  22. fclose($fp);
  23. $fileName = addslashes($fileName);
  24. }
  25. $con = mysql_connect('....', ....', '....') or die(mysql_error());
  26. $db = mysql_select_db('...', $con);
  27. if ($db) {
  28. $query = "INSERT INTO upload (name, size, type, content, opis ) " .
  29. "VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$opis')";
  30. mysql_query($query) or die('Error, query failed');
  31. mysql_close();
  32. echo "<td>Plik <font color='red'><b>".$fileName."</b></font> został przesłany poprawnie.</td>";
  33. } else {
  34. echo "Błąd przesyłania pliku.";
  35. }
  36. }
  37.  
  38. ?>
  39.  
  40. <tr>
  41. <td>Wysyłanie pliku na serwer</td></tr>
  42. <tr>
  43. <td>
  44. <input type="hidden" name="MAX_FILE_SIZE"
  45. value="16000000">
  46. <input name="userfile" type="file" id="userfile">
  47. </td><tr>
  48. <td>
  49. Opis <INPUT type="text" name="opis" cols="200" rows="100">
  50. </td><tr>
  51. <td width="80"><input name="upload"
  52. type="submit" class="box" id="upload" value=" Upload "></td>
  53. </tr>
  54.  
  55. </form>
  56.  
  57. </table>
  58. </body>
  59. </html>
Go to the top of the page
+Quote Post
kujol
post 16.03.2015, 19:32:16
Post #9





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Linku z chmury nie weźmiesz, chyba że go ręcznie bedziesz wpisywał biggrin.gif
Musisz go jakoś wygenerować np. za pomocą tablicy $_server.


--------------------
;)
Go to the top of the page
+Quote Post
bolus150
post 16.03.2015, 20:08:50
Post #10





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Dopisałem $opis = $_FILES['userfile']['opis']; Jeżeli ['opis'] będzie ['name'] to wpisuję mi nazwę pliku który chcę wrzucić, a nie opis który wpisałem

  1. if (isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) {
  2. $fileName = $_FILES['userfile']['name'];
  3. $tmpName = $_FILES['userfile']['tmp_name'];
  4. $fileSize = $_FILES['userfile']['size'];
  5. $fileType = $_FILES['userfile']['type'];
  6. $opis = $_FILES['userfile']['opis'];
  7. $_FILES['userfile']['type']) : mysql_real_escape_string(
  8. stripslashes($_FILES['userfile'])));
  9. $fp = fopen($tmpName, 'r');
  10. $content = fread($fp, filesize($tmpName));
  11. $content = addslashes($content);
  12. fclose($fp);
  13. $fileName = addslashes($fileName);
  14. }
Go to the top of the page
+Quote Post
boro11
post 17.03.2015, 02:19:43
Post #11





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Czyli już działa?
Go to the top of the page
+Quote Post
nospor
post 17.03.2015, 07:12:40
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Opis znajduje sie pod $_POST['opis']


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bolus150
post 17.03.2015, 19:11:16
Post #13





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Jeżeli zrobie [name] wrzuca mi nazwę pliku do bazy a nie opis.
Go to the top of the page
+Quote Post
nospor
post 17.03.2015, 19:43:53
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeczytales moj ostatni post?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bolus150
post 17.03.2015, 21:40:33
Post #15





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Czyli coś takiego?

  1. $opis = $_POST['opis'];


Wtedy błąd wyskakuje: Error, query failed.

Wydaje mi się, że wtedy coś z zapytaniem musi być nie tak.

  1. $query = "INSERT INTO upload (name, size, type, content, opis ) " .
  2. "VALUES ('$fileName', '$fileSize', '$fileType', '$content', '$opis')";



Ok, wysyłanie dział. Musiałem mieć w bazie jakiś błąd. Ale teraz widzę, że zamiast spacji daje mi + idzie to jakoś zniwelować? I nie pokazuje polskich znaków

Ten post edytował bolus150 17.03.2015, 21:42:54
Go to the top of the page
+Quote Post
com
post 17.03.2015, 21:54:56
Post #16





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


kodowanie bazy na utf-8 + połączenie w utf-8
Go to the top of the page
+Quote Post
bolus150
post 17.03.2015, 22:04:26
Post #17





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Metode porównywania znaków w bazie mam ustawioną na utf8_bin.
A w header.php mam

  1. <meta http-equiv="Content-Type" content="text/html; charset = utf-8" />
Go to the top of the page
+Quote Post
com
post 17.03.2015, 22:18:17
Post #18





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


ale musisz się z nią połączyć w utf-8
http://wortal.php.pl/phppl/Wortal/Artykuly...e-znaki-a-MySQL
Go to the top of the page
+Quote Post
bolus150
post 17.03.2015, 22:24:47
Post #19





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


  1. $con = mysql_connect('mysql.cba.pl', 'ba2aaa', 'qwerty') or die(mysql_error());
  2. $db = mysql_select_db('dobreinstalki_c0_pl', $con);
  3. $query = "SELECT id, name, size, opis FROM upload";
  4. $dbh -> query ('SET NAMES utf8');
  5. $dbh -> query ('SET CHARACTER_SET utf8_unicode_ci');
  6. $result = mysql_query($query) or die('Błąd składni SQL');


Zrobiłem w ten sposób i coś jest nie tak;/

Fatal error: Call to a member function query() on a non-object in /virtual/dobreinstalki.c0.pl/download.php on line 20
Go to the top of the page
+Quote Post
com
post 17.03.2015, 22:45:55
Post #20





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


kopiujecie bezmyślnie to potem tak jest smile.gif uzywasz mysql_* a nie pdo to nie $dbh -> query ('SET NAMES utf8'); a
mysql_query('SET NAMES utf8'); i analogicznie dla drugiego smile.gif

Ten post edytował com 17.03.2015, 23:22:45
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 18:29