Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ładowanie pliku do bazy
Vasquez21
post 20.07.2005, 13:02:03
Post #1





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


Witam.

Nie wiem czy problem był poruszany, ale szukałem i nie mogę znaleźć.

Chciałem do bazy Mssql załadować plik niestety nie wiem jak :/
Korzystałem z stronki, więc nie będę mazał tego co było w komentarzach, ale mam coś takiego teraz:

  1. <?php
  2.  
  3. // store.php3 - by Florian Dittmer <dittmer@gmx.net>
  4. // Example php script to demonstrate the storing of binary files into
  5. // an sql database. More information can be found at http://www.phpbuilder.com/
  6. ?>
  7.  
  8. <html>
  9. <head><title>Store binary data into SQL Database</title></head>
  10. <body>
  11.  
  12. <?php
  13. // code that will be executed if the form has been submitted:
  14. if ($_POST['submit']=='submit') 
  15. {
  16.  
  17. // connect to the database
  18. // (you may have to adjust the hostname,username or password)
  19.  
  20.  
  21. $link = mssql_connect(&#092;"SERVER\",\"login\", \"pass\")
  22. or die(&#092;"Could not connect !\");
  23. mssql_select_db(&#092;"binary\", $link);
  24.  
  25.  
  26.  
  27. $data = addslashes(fread(fopen($GET['form_data'], &#092;"r\"), filesize($GET['form_data'])));
  28.  
  29. echo 'TU->'.$data;
  30. echo '<br>->'.$_POST['form_description'];
  31.  
  32.  
  33. $result=MSSQL_QUERY(&#092;"INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) \".
  34. &#092;"VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')\");
  35.  
  36. $id= mssql_insert_id();
  37. print &#092;"<p>This file has the following Database ID: <b>$id</b>\";
  38.  
  39.  
  40.  MsSQL_CLOSE();
  41.  
  42. } 
  43. else 
  44. {
  45.  
  46. // else show the form to submit new data:
  47.  
  48. ?>
  49.  
  50. <form method=\"post\" action=\"\" enctype=\"multipart/form-data\">
  51. File Description:<br>
  52. <input type=\"text\" name=\"form_description\" size=\"40\">
  53. <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000000\">
  54. <br>File to upload/store in database:<br>
  55. <input type=\"file\" id=\"form_data\" name=\"form_data\">
  56. <p><input type=\"submit\" name=\"submit\" value=\"submit\">
  57. </form>
  58.  
  59.  
  60. <?php
  61.  
  62. }
  63.  
  64. ?>
  65.  
  66. </body>
  67. </html>


No i właśnie... nie wiem gdzie jest błąd. Bo po zaakceptowaniu formularza. Wychodzi na to, że w zmiennej form_data, nie jest nic przekazywane (albo robię to źle), gdyż po zapisaniu, nagle okazuje się, że $data jest pusta.

Bardzo proszę o jakieś wskazówki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
nospor
post 20.07.2005, 13:08:00
Post #2





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




slyszales kiedyś o czymś takim jak upload? nie? to poczytaj:
http://forum.php.pl/index.php?showtopic=32807&hl=upload
http://forum.php.pl/index.php?showtopic=32300&hl=upload
i wiele innych. wpisz haslo upload.


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

"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
Vasquez21
post 21.07.2005, 06:41:16
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


przejrzałem kilka stron o uploadzie, poprawiłem co nieco, nadal jednak nie mogę wrzucić pliku na stronkę. Dlatego bardzo proszę Was o pomoc.

Mam coś takiego:

  1. <?php
  2.  
  3. include &#092;"open_db.inc\";
  4.  
  5. $binFile = $_FILES['userfile'];
  6. // $binFile = $_FILES['userfile']['tmp_name'];
  7. $binFile_name = $_FILES['userfile']['name'];
  8. $binFile_size = $_FILES['userfile']['size']; 
  9. $binFile_type = $_FILES['userfile']['type']; 
  10. $txtDescription = $_POST['txtDescription'];
  11.  
  12.  
  13.  
  14. if ($_POST['action'] == &#092;"upload\") {
  15. // ok, let's get the uploaded data and insert it into the db now
  16.  
  17.  
  18.  
  19. echo '<br>FILE-> '.$binFile; 
  20. if (isset($binFile) && $binFile != &#092;"none\") {
  21. echo '<br>udalo sie';
  22. $data = addslashes(fread(fopen($binFile, &#092;"r\"), filesize($binFile)));
  23. $strDescription = addslashes(nl2br($txtDescription));
  24.  
  25. echo '<br>name-> '.$binFile_name; 
  26. echo '<br>type-> '.$binFile_type; 
  27. echo '<br>size-> '.$binFile_size; 
  28. echo '<br>txt-> '.$strDescription; 
  29. echo '<br>data-> '.$data; 
  30.  
  31. $sql = &#092;"INSERT INTO binary_data (id, description, bin_data, filename, filesize, filetype)
  32. VALUES ('', '$strDescription', '$data', '$binFile_name', '$binFile_size', '$binFile_type')&#092;";
  33. $result = mssql_query($sql, $db);
  34. mssql_free_result($result); // it's always nice to clean up!
  35. echo &#092;"<br>Thank you. The new file was successfully added to our database.<br><br>\";
  36. echo &#092;"<a href='add.php'>Continue</a>\";
  37. }
  38.  // mssql_close();
  39.  
  40. } 
  41. else 
  42. {
  43. ?>
  44. <HTML>
  45. <BODY>
  46. <FORM METHOD=\"post\" ACTION=\"add.php\" ENCTYPE=\"multipart/form-data\">
  47.  <INPUT TYPE=\"hidden\" NAME=\"MAX_FILE_SIZE\" VALUE=\"1000000\">
  48.  <INPUT TYPE=\"hidden\" NAME=\"action\" VALUE=\"upload\">
  49.  <TABLE BORDER=\"1\">
  50. <TR>
  51.  <TD>Description: </TD>
  52.  <TD><TEXTAREA NAME=\"txtDescription\" ROWS=\"10\" COLS=\"50\"></TEXTAREA></TD>
  53. </TR>
  54. <TR>
  55.  <TD>File: </TD>
  56.  <TD><INPUT TYPE=\"file\" NAME=\"userfile\"></TD>
  57. </TR>
  58. <TR>
  59.  <TD COLSPAN=\"2\"><INPUT TYPE=\"submit\" VALUE=\"Upload\"></TD>
  60. </TR>
  61.  </TABLE>
  62. </FORM>
  63. </BODY>
  64. </HTML>
  65. <?php
  66. }
  67. ?>


No i właśnie w miejscu kiedy wywołuję wszystkie dane przed samym insertem, wszystkie dane mi wyświetla poza $data.... zapewne jest to spowodowane tym, że źle próbuję ten plik przekazać. Próbowałem tak:
$binFile = $_FILES['userfile'];
i tak
$binFile = $_FILES['userfile']['tmp_name'];
ale zapewne muszę to zrobić inaczej :/

Będę BARDZO wdzięczny za tą informację.
Go to the top of the page
+Quote Post
nospor
post 21.07.2005, 08:13:00
Post #4





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




  1. <?php
  2. include &#092;"open_db.inc\";
  3.   
  4.   
  5.  
  6.  
  7. if ($_POST['action'] == &#092;"upload\") {
  8.   // ok, let's get the uploaded data and insert it into the db now
  9.   $binFile = $_FILES['userfile']['tmp_name'];
  10.   $binFile_name = $_FILES['userfile']['name'];
  11.   $binFile_size = $_FILES['userfile']['size']; 
  12.   $binFile_type = $_FILES['userfile']['type']; 
  13.   $txtDescription = $_POST['txtDescription'];
  14.  
  15.  
  16. echo '<br>FILE-> '.$binFile; 
  17.   if (isset($binFile) && $binFile != &#092;"none\") {
  18.       echo '<br>udalo sie';
  19.     $data = addslashes(fread(fopen($binFile, &#092;"r\"), filesize($binFile)));
  20.     $strDescription = addslashes(nl2br($txtDescription));
  21.  
  22. echo '<br>name-> '.$binFile_name; 
  23. echo '<br>type-> '.$binFile_type; 
  24. echo '<br>size-> '.$binFile_size; 
  25. echo '<br>txt-> '.$strDescription; 
  26. echo '<br>data-> '.$data; 
  27.     $sql = &#092;"INSERT INTO binary_data (id, description, bin_data, filename, filesize, filetype)
  28.             VALUES ('', '$strDescription', '$data', '$binFile_name', '$binFile_size', '$binFile_type')&#092;";
  29.     $result = mssql_query($sql, $db);
  30.     mssql_free_result($result); // it's always nice to clean up!
  31.     echo &#092;"<br>Thank you. The new file was successfully added to our database.<br><br>\";
  32.     echo &#092;"<a href='add.php'>Continue</a>\";
  33.   }
  34.  
  35. } 
  36. else 
  37. {
  38. ?>
  39. <HTML>
  40. <BODY>
  41. <FORM METHOD=\"post\" ENCTYPE=\"multipart/form-data\">
  42. <INPUT TYPE=\"hidden\" NAME=\"MAX_FILE_SIZE\" VALUE=\"1000000\">
  43. <INPUT TYPE=\"hidden\" NAME=\"action\" VALUE=\"upload\">
  44. <TABLE BORDER=\"1\">
  45.   <TR>
  46.    <TD>Description: </TD>
  47.    <TD><TEXTAREA NAME=\"txtDescription\" ROWS=\"10\" COLS=\"50\"></TEXTAREA></TD>
  48.   </TR>
  49.   <TR>
  50.    <TD>File: </TD>
  51.    <TD><INPUT TYPE=\"file\" NAME=\"userfile\"></TD>
  52.   </TR>
  53.   <TR>
  54.    <TD COLSPAN=\"2\"><INPUT TYPE=\"submit\" VALUE=\"Upload\"></TD>
  55.   </TR>
  56. </TABLE>
  57. </FORM>
  58. </BODY>
  59. </HTML>
  60. <?php
  61. }
  62. ?>


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

"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
Vasquez21
post 21.07.2005, 08:31:19
Post #5





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


zamieniłem

  1. <FORM METHOD="post" ACTION="add.php" ENCTYPE="multipart/form-data">


na
  1. <FORM METHOD="post" ACTION="add.php" ENCTYPE="multipart/form-data">


ale nic nie pomogło :/
nadal przy wywołaniu:

  1. <?php
  2. echo '<br>data-> '.$data; 
  3.  
  4. ?>

nic mi nie pokazuje
Go to the top of the page
+Quote Post
nospor
post 21.07.2005, 08:33:16
Post #6





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




nie bardzo rozumiem co na co zamieniles? nie widze róznic.
pozatym, kod, który ci podalem jest ok. Testowalem go u siebie, nanioslem drobne poprawki i dziala. wkleiles go calego czy tylko fragmenty?

edit. poprawilem include bo robilem swoj include zamiast twojego


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

"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
Vasquez21
post 21.07.2005, 08:45:56
Post #7





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


wrzuciłem sobie dwa kody... mój i twój i patrzyłem na różnice...na zasadzie alt+tab...

jednak wyglądało to identycznie, na koniec wreszcie skopiowałem Twój kod, zamieniłem include na swojego i sprawdziłem czy działa...

po wpisaniu czegoś w boxa i wybaniu pliku txt potwierdziłem... i wyskoczyło mi coś takiego:

Kod
FILE-> C:\WINNT\TEMP\php3DF.tmp
name-> New Text Document.txt
type-> text/plain
size-> 127
txt-> adsdasd
data->
Thank you. The new file was successfully added to our database.

Continue


niestety w bazie nic się nie zmieniło :/
podejrzewam że dlatego, żę "$data" jest z jakiegoś powodu puste :/

Ten post edytował Vasquez21 21.07.2005, 08:46:58
Go to the top of the page
+Quote Post
nospor
post 21.07.2005, 08:51:29
Post #8





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




podstawową róznicą jest to:$binFile = $_FILES['userfile']['tmp_name'];

nie wiem czemu,ale u mnie ten kod dziala w 100%. a jakiej wielkości ty pliki uplodujesz? zrób upload na jakimś pliki textowym o zawartości "ala ma klota" i sprwdź czy dziala. Zrób to na moim kodzie.


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

"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
Vasquez21
post 21.07.2005, 08:59:25
Post #9





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


Cytat
podstawową róznicą jest to:$binFile = $_FILES['userfile']['tmp_name'];


tak jak mówiłem na początku próbowałem również tak.

W każdym razie sprawdziłem jeszcze raz na nowym pliku, nadal jest jakiś błąd gdyż, $data w dalszym ciągu wygląda na pustą sad.gif

szperałem jeszcze w manualu... i znalazłem coś takiego:

"This's note about mssql and truncating binary output from database (mostly image ...), i spent about 2 days tuning this stuff and fortunately i made the hit ...
so if you're experiencing truncates of your binary data read from mssql database (it looks like incomplete, broken or even no images) check mssql section of your php.ini file and set values of mssql.textlimit and mssql.textsize variables to their maximum (2147483647) or at least bigger size than the default is ... so i hope it helps a bit, have a good time"

myślisz, że to to questionmark.gif
Go to the top of the page
+Quote Post
nospor
post 21.07.2005, 09:07:57
Post #10





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




Nie, ty podales text cos o bazce, a problem jest ze ci pliku nie czyta.
Daj tak:
  1. <?php
  2.  
  3. //....
  4. echo '<br>data-> '.$data;
  5. if (file_exists($binFile))
  6. {
  7.  echo &#092;"jest plik\";
  8.  if (fopen($binFile, &#092;"r\"))
  9. echo &#092;"mozna czytac\";
  10.  else
  11. echo &#092;"nie można czytać\";
  12. }
  13. else
  14. {
  15. echo &#092;"pliku nie ma\";
  16. }
  17.  
  18. //....
  19.  
  20. ?>


pozatym na początku skrytu daj: error_reporting(E_ALL);


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

"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
Vasquez21
post 21.07.2005, 09:20:48
Post #11





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


KOD:
  1. <?php
  2. include &#092;"open_db.inc\";
  3.  
  4. if ($_POST['action'] == &#092;"upload\") {
  5. // ok, let's get the uploaded data and insert it into the db now
  6.  
  7. $binFile = $_FILES['userfile']['tmp_name'];
  8. $binFile_name = $_FILES['userfile']['name'];
  9. $binFile_size = $_FILES['userfile']['size'];
  10. $binFile_type = $_FILES['userfile']['type'];
  11. $txtDescription = $_POST['txtDescription'];
  12.  
  13.  
  14. echo '<br>FILE-> '.$binFile;
  15. if (isset($binFile) && $binFile != &#092;"none\") 
  16. {
  17. $data = addslashes(fread(fopen($binFile, &#092;"r\"), filesize($binFile)));
  18. $strDescription = addslashes(nl2br($txtDescription));
  19.  
  20. echo '<br>name-> '.$binFile_name;
  21. echo '<br>type-> '.$binFile_type;
  22. echo '<br>size-> '.$binFile_size;
  23. echo '<br>txt-> '.$strDescription;
  24. echo '<br>data-> '.$data;
  25.  
  26. if (file_exists($binFile))
  27. {
  28.  echo &#092;"jest plik\";
  29.  if (fopen($binFile, &#092;"r\"))
  30. echo &#092;"mozna czytac\";
  31.  else
  32. echo &#092;"nie można czytać\";
  33. }
  34. else
  35. {
  36. echo &#092;"pliku nie ma\";
  37. }
  38.  
  39.  
  40.  
  41. $sql = &#092;"INSERT INTO binary_data (id, description, bin_data, filename, filesize, filetype)
  42. VALUES ('', '$strDescription', '$data', '$binFile_name', '$binFile_size', '$binFile_type')&#092;";
  43. $result = mssql_query($sql, $db);
  44. mssql_free_result($result); // it's always nice to clean up!
  45. echo &#092;"<br>Thank you. The new file was successfully added to our database.<br><br>\";
  46. echo &#092;"<a href='test2.php'>Continue</a>\";
  47. }
  48.  
  49. }
  50. else
  51. {
  52. ?>
  53. <HTML>
  54. <BODY>
  55. <FORM METHOD=\"post\" ENCTYPE=\"multipart/form-data\">
  56. <INPUT TYPE=\"hidden\" NAME=\"MAX_FILE_SIZE\" VALUE=\"1000000\">
  57. <INPUT TYPE=\"hidden\" NAME=\"action\" VALUE=\"upload\">
  58. <TABLE BORDER=\"1\">
  59. <TR>
  60.  <TD>Description: </TD>
  61.  <TD><TEXTAREA NAME=\"txtDescription\" ROWS=\"10\" COLS=\"50\"></TEXTAREA></TD>
  62. </TR>
  63. <TR>
  64.  <TD>File: </TD>
  65.  <TD><INPUT TYPE=\"file\" NAME=\"userfile\"></TD>
  66. </TR>
  67. <TR>
  68.  <TD COLSPAN=\"2\"><INPUT TYPE=\"submit\" VALUE=\"Upload\"></TD>
  69. </TR>
  70. </TABLE>
  71. </FORM>
  72. </BODY>
  73. </HTML>
  74. <?php
  75. }
  76. ?>


Wynik na ekranie:
Kod
FILE-> C:\WINNT\TEMP\php3E1.tmp
name-> ala.txt
type-> text/plain
size-> 11
txt-> sadadasd
data-> pliku nie ma
Thank you. The new file was successfully added to our database.

Continue


:/
no więc pytanie... dlaczego nie czyta :|
Go to the top of the page
+Quote Post
nospor
post 21.07.2005, 09:35:07
Post #12





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




nie czyta, bo jak widać nie zrzucil ci pliku na server. A co ci zwraca takie coś:
echo '<br>FILE-> '.$binFile;


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

"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
Vasquez21
post 21.07.2005, 09:36:16
Post #13





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


to jest właśnie to co wklejałem u góry:

Kod
FILE-> C:\WINNT\TEMP\php3E1.tmp


edit: oczywiście po wcześniejszym podstawieniu:
  1. <?php
  2. $binFile = $_FILES['userfile']['tmp_name'];
  3. ?>


Ten post edytował Vasquez21 21.07.2005, 09:39:15
Go to the top of the page
+Quote Post
nospor
post 21.07.2005, 09:46:28
Post #14





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




Sorki, ale ja wymiekam. Mam dziś cięzki dzień. Niby pisze że wrzucil pli do danej lokalizacji,ale jak się sprawdza czy plik tam istnieje to pisze że nie istnieje. Porażka. A wrzucales tam maly tekstowy plik jak prosilem?
No niewiem. U mnie dziala. nie wiem czemu u ciebie nie chce. Może coś z konfiguracją masz nie tak.
u mie w php.ini jest tak:
Cytat
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 15M

juz chyba nic więcej nie wymyśle. sorki


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

"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
Vasquez21
post 21.07.2005, 09:50:52
Post #15





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


Cóż... i tak walczyłeś dzielnie... w każdym razie wielkie dzięki za poświęcony czas.

Cytat
; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 15M


zmienię tak jak napisałeś, tyle tylko że admina będę musiał przekonać, żeby mi server z php'em reinstalował... a tego od zaraz nie załatwię.

Jeszcze raz dzięki za pomoc. Może ktoś się jeszcze trafi kto miał podobny problem.

PS. próbowałem na małym pliku

EDIT:
zmieniłem... php.ini ale niestety nie pomogło ;(... ma ktoś jeszcze jakiś pomysł questionmark.gif

EDIT:
Udało mi się nareszcie dostać do pliku. Problem wynikał z tego, że docelowy folder, gdzie tymczasowo przechowywane są pliki: C:\WINNT\TEMP\ znajdował się na serverze... do którego nie miałem dostępu. Zrobiłem więc nowy folder i zmieniłem ściężkę dostępu w php.ini i mimo że wydawało mi się, że problem mam za sobą, to mam jeszcze błąd.

KOD:
  1. <?php
  2. //include \"open_db.inc\";
  3.  
  4. if ($_POST['action'] == &#092;"upload\") {
  5. // ok, let's get the uploaded data and insert it into the db now
  6.  
  7. $binFile = $_FILES['userfile']['tmp_name'];
  8. $binFile_name = $_FILES['userfile']['name'];
  9. $binFile_size = $_FILES['userfile']['size'];
  10. $binFile_type = $_FILES['userfile']['type'];
  11. $txtDescription = $_POST['txtDescription'];
  12.  
  13.  
  14. echo '<br>FILE-> '.$binFile;
  15. if (isset($binFile) && $binFile != &#092;"none\") 
  16. {
  17. $data = addslashes(fread(fopen($binFile, &#092;"r\"), filesize($binFile)));
  18. $strDescription = addslashes(nl2br($txtDescription));
  19.  
  20. echo '<br>name-> '.$binFile_name;
  21. echo '<br>type-> '.$binFile_type;
  22. echo '<br>size-> '.$binFile_size;
  23. echo '<br>txt-> '.$strDescription;
  24. echo '<br>data-> '.$data;
  25.  
  26. if (file_exists($binFile))
  27. {
  28.  echo &#092;"<br>jest plik\";
  29.  if (fopen($binFile, &#092;"r\"))
  30. echo &#092;"<br>mozna czytac\";
  31.  else
  32. echo &#092;"nie można czytać\";
  33. }
  34. else
  35. {
  36. echo &#092;"pliku nie ma\";
  37. }
  38.  
  39.  
  40.  
  41.  
  42. $link = mssql_connect(&#092;"SERVER\",\"login\", \"haslo\")
  43. or die(&#092;"Could not connect !\");
  44. mssql_select_db('binary', $link) or die(&#092;"Could not connect database!\");
  45.  
  46. $sql = &#092;"INSERT INTO binary_data (description, bin_data, filename, filesize, filetype) VALUES ('$strDescription', '$data', '$binFile_name', '$binFile_size', '$binFile_type')\";  
  47. // VALUES ('', '$strDescription', null, '$binFile_name', '$binFile_size', '$binFile_type')\";
  48. $result = mssql_query($sql, $link) or die('blad');
  49. mssql_free_result($result); // it's always nice to clean up!
  50.  
  51.  
  52. echo &#092;"<br>Thank you. The new file was successfully added to our database.<br><br>\";
  53. echo &#092;"<a href='test2.php'>Continue</a>\";
  54. }
  55.  
  56. }
  57. else
  58. {
  59. ?>
  60. <HTML>
  61. <BODY>
  62. <FORM METHOD=\"post\" ENCTYPE=\"multipart/form-data\">
  63. <INPUT TYPE=\"hidden\" NAME=\"MAX_FILE_SIZE\" VALUE=\"1000000\">
  64. <INPUT TYPE=\"hidden\" NAME=\"action\" VALUE=\"upload\">
  65. <TABLE BORDER=\"1\">
  66. <TR>
  67.  <TD>Description: </TD>
  68.  <TD><TEXTAREA NAME=\"txtDescription\" ROWS=\"10\" COLS=\"50\"></TEXTAREA></TD>
  69. </TR>
  70. <TR>
  71.  <TD>File: </TD>
  72.  <TD><INPUT TYPE=\"file\" NAME=\"userfile\"></TD>
  73. </TR>
  74. <TR>
  75.  <TD COLSPAN=\"2\"><INPUT TYPE=\"submit\" VALUE=\"Upload\"></TD>
  76. </TR>
  77. </TABLE>
  78. </FORM>
  79. </BODY>
  80. </HTML>
  81. <?php
  82. }
  83. ?>


Przy samym INSERCIE do bazy. Występuje błąd. Jeżeli próbuję wprowadzić $data do bazy, otrzymuję error.
Jeżeli ustawię to pole na null to wszystko działa jak należy.

Ostatnie pytanie, dlaczego nie chce dodać do bazy samego pliku ? :/

Ten post edytował Vasquez21 21.07.2005, 11:41:03
Go to the top of the page
+Quote Post
tsufu
post 21.07.2005, 11:34:21
Post #16





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 12.07.2004

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


"INSERT INTO binary_data (id, description, bin_data, filename, filesize, filetype)
VALUES ('', '$strDescription', '$data', '$binFile_name', '$binFile_size', '$binFile_type')

a czemu podajesz pole id ? czesto to pole (nazwa) jest zastrzezone wiec jesli juz wogole id to np. pole_id albo cos innego ale nie ID ! potem...
a czemu wgoole podajesz id puste, jesli masz autoincrement to nie musisz sie zabardzo martwic (bynajmniej dla testow sproboj) i sprawdz czy w pliku nie masz powiedzmy jakis slash tych wszystkich znakow co potem mozna powiedziec ze addslashuje sobie mysql bo nie zawsze dobrze to wczytuje znaycz sie kiedys mialem problem bo jak byl jakis dziwny znak to po prostu przestawal dodawac na tym znaku
Go to the top of the page
+Quote Post
Vasquez21
post 21.07.2005, 11:48:30
Post #17





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


zmieniłem... zapewne pisałeś odpowiedź to wcześniejszych postów winksmiley.jpg teraz jedyn problem mam właśnie z tym zapisem, o którym wspominam trochę wyżej winksmiley.jpg
Go to the top of the page
+Quote Post
nospor
post 21.07.2005, 12:04:52
Post #18





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




Daj to pole typu BLOB


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

"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
Vasquez21
post 21.07.2005, 12:08:45
Post #19





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


nie ma takiego typu w mssql'u
aktualnie mam varbinary(16)


EDIT:
poszło winksmiley.jpg
zamieniłem typ na: "sql_variant" i idzie winksmiley.jpg

dzięki wszystkim za pomoc, idę się teraz pobawić z odczytem biggrin.gif

Ten post edytował Vasquez21 21.07.2005, 12:18:13
Go to the top of the page
+Quote Post
SongoQ
post 21.07.2005, 12:20:31
Post #20





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Ja mam takie rozwiazanie.
Ladujesz plik na serwer kodujesz w base64 i wtedy normalnie dodajesz jako varchar.


--------------------
Go to the top of the page
+Quote Post

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: 19.07.2025 - 20:30