הכנסת קבצים לבסיס הנתונים
* המדריך נכתב באדיבותו של ירון גונן.
שתי הפעולות העיקריות שנרצה לבצע עם הקבצים הם כמובן להכניס אותם לבסיס הנתונים ולשלוף אותם משם. את ההכנסה של קובץ אל תוך בסיס הנתונים אדגים בעזרת פעולת upload:
file name: storedata.php
<HTML>
<HEAD><TITLE>Store binary data into SQL Database</TITLE></HEAD>
<BODY>
<?php if (isset($submit)) {/* | האם המשתמש לחץ על כפתור השליחה? | */ |
mysql_connect("localhost","root","");/* | התחברות אל בסיס הנתונים. יש צורך לשנות את השם והסיסמא. | */ |
mysql_select_db( "test"); $data = addslashes(fread(fopen($form_data, "rb"), filesize($form_data))); //inserting the file info to the first table. $result= mysql_query( "INSERT INTO file (description,filename,filesize,filetype) VALUES ('$form_description','$form_data_name','$form_data_size','$form_data_type')"/* | פעולת ההכנסה של פרטי הקובץ אל בסיס הנתונים. | */ |
); if (! $result) { die( 'Error inserting the file info'); } $id= mysql_insert_id(); //inserting the file data to the second table. $result= mysql_query( "INSERT INTO filedata (id,bin_data) VALUES ('$id','$data')"/* | פעולת ההכנסה של המידע הבינארי אל בסיס הנתונים. | */ |
); if (! $result) { die( 'Error inserting the file data'); } echo "File $form_description insert successfully<BR>"; mysql_close(); } else {/* | אם כפתור השליחה לא נלחץ, מציגים טופס למשתמש. | */ |
?>
<FORM method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
File Description:<br>
<INPUT type="text" name="form_description" size="40">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">
<BR>File to upload/store in database:<BR>
<INPUT type="file" name="form_data" size="40">
<P><INPUT type="submit" name="submit" value="submit"></P>
</FORM>
<?php } ?>
</BODY>
</HTML>
הכל טוב ויפה אבל... | 05-12-02 16:01 אביב | #187 |
| הכל טוב ויפה במאמר הזה אבל בתכלס, לא הסברתם מה "השורה החשובה" עושה !
ובלי זה, זה לא שווה ! |
|
השורה החשובה | 05-12-02 16:01 אלי חן (מנהל) | #188 |
| אתה צודק, אבל לא אני כתבתי את המדריך הזה.. בכל אופן אני אסביר מה זה אומר:
כאשר מעלים קובץ באמצעות טופס אז PHP שומרת את הקובץ בספריה זמנית בשם קובץ זמני, והנתיב אל אותו קובץ זמני נמצא במשתנה form_data$. השורה החשובה בקוד פותחת את הקובץ בצורה *בינארית* הזמני לקריאה וקוראת את תוכנו. למחרוזת של התוכן אנו מוסיפים סלאשים כדי שיהיה ניתן להכניסו לבסיס נתונים של MySQL (ניתן להשתמש גם בפונקציה mysql_escape_string). ואת כל המחרוזת הזו שומרים במשתנה data$. |
|
רוחב ואורך התמונה | 08-12-03 22:01 טל חדד | #1084 |
| באיזו פונקציה משתמשים כדי לקבל אורך ורוחב של תמונה?
אני צריך את זה בשביל סקריפט שאני בונה
תודה מראש |
|
getimagesize | 09-12-03 18:02 אלי חן (מנהל) | #1126 |
| מקבל כפרמטר את הנתיב לקובץ התמונה, ומחזיר מערך של נתונים על התמונה.
אינדקס 0 - רוחב התמונה.
אינדקס 1 - אורך התמונה.
הוא מחזיר עוד כמה נתונים, כמו mimetype וסוג התמונה. |
|
זה טיפשי לפי דעתי.. לא עדיף להשתמש ב | 07-12-05 01:01 בל עט | #2596 |
| זה טיפשי.. לא עדיף להשתמש ב load_file ?
$result=mysql_query("INSERT INTO filedata (id,bin_data) VALUES ('$id',load_file('$form_data'))");
בזבוז משאבים להשתמש ב PHP בשביל זה : |
|
זה לא טיפשי | 01-11-07 02:00 מני סמט | #2791 |
| יש יתרונות ויש חסרונות.
זה מוסבר בעמוד הראשון, יש דברים שלא צריך לאחסן במסד ויש כאלה שכן מומלץ. |
|
|
|
|
|
ניווט האתר:
הכנסת קבצים לבסיס הנתונים |
הוספה למועדפים:
|