ABA


"מחפש דוגמא ב PHP לעדכון שדה שמכיל קובץ מסוג תמונה."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #20114 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 20114
The Boss  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.9.08
6889 הודעות, 2 פידבק
   14:44   20.07.13   
אל הפורום  
  מחפש דוגמא ב PHP לעדכון שדה שמכיל קובץ מסוג תמונה.  
 
   מחפש דוגמא ב PHP לעדכון שדה שמכיל קובץ מסוג תמונה.

מסד נתונים mySQL.

תודה רבה

קופון הנחה של 5% ל iHerb
https://goo.gl/Q6Tr1S
הרבה יותר טוב מ Vitacost


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  לא מובן בדיוק מה אתה מנסה לעשות, מה זה שדה שמכיל קובץ מסוג תמונה? ב-DB? CaTz 21.07.13 10:26 1
     תראה כאן דוגמא, dvir8 21.07.13 11:24 2
         תודה רבה!!! אני אנסה :) The Boss  21.07.13 19:54 3
             זה לא עבד (משהו תחבירי בשאילתה לא נכון) , אבל הקישור הבא כן, The Boss  20.09.13 00:13 5
     שדה מסוג BLOB The Boss  21.07.13 19:55 4
  אם יש לך המון קבצים זה לא רעיון טוב להחזיק את התמונה בשדה מסוג BLOB, last_test 20.09.13 02:16 6
     יש באמת בעיית ביצועים משמעותית, מדובר ב 20,000 קבצים. The Boss  21.09.13 14:33 7
         תשובות, last_test 21.09.13 15:24 8
             תודה על התשובה המהירה, The Boss  21.09.13 15:30 9
                 תשובות, last_test 21.09.13 19:28 10
                     תודה רבה :) The Boss  21.09.13 20:33 11

       
CaTz
חבר מתאריך 2.10.04
14537 הודעות
   10:26   21.07.13   
אל הפורום  
  1. לא מובן בדיוק מה אתה מנסה לעשות, מה זה שדה שמכיל קובץ מסוג תמונה? ב-DB?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dvir8
חבר מתאריך 13.5.02
5929 הודעות
   11:24   21.07.13   
אל הפורום  
  2. תראה כאן דוגמא,  
בתגובה להודעה מספר 1
 
   עבר עריכה לאחרונה בתאריך 20.09.13 בשעה 13:45 על-ידי Ice Cold (מנהל הפורום)
 

http://www.techcubetalk.com/2009/01/tutorial-on-how-to-store-images-in-mysql-blob-field/

התגובה לפותח ה Post. התבלבלתי בשרשור.


include “dbconfig.php”;

$dbconn = mysql_connect($dbhost, $dbusr, $dbpass) or die(”Error Occurred-”.mysql_error());
mysql_select_db($dbname, $dbconn) or die(”Unable to select database”);

if(isset($_REQUEST[submit]) && $_FILES[imgfile][size] > 0)
{
$fileName = $_FILES[imgfile][name]; // image file name
$tmpName = $_FILES[imgfile][tmp_name]; // name of the temporary stored file name
$fileSize = $_FILES[imgfile][size]; // size of the uploaded file
$fileType = $_FILES[imgfile][type]; // file type

$fp = fopen($tmpName, ‘r’); // open a file handle of the temporary file
$imgContent = fread($fp, filesize($tmpName)); // read the temp file
fclose($fp); // close the file handle

$query = “INSERT INTO img_tbl (`img_name`, `img_type`, `img_size`, `img_data` )
VALUES (’$fileName’, ‘$fileType’, ‘$fileSize’, ‘$imgContent’)”;

mysql_query($query) or die(’Error, query failed’);
$imgid = mysql_insert_id(); // autoincrement id of the uploaded entry
mysql_close($dbconn);

echo "<br>Image successfully uploaded to database<br>";
echo "<a href=\”viewimage.php?id=$imgid\”>View Image</a>";

} else die(”You have not selected any image”);


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Boss  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.9.08
6889 הודעות, 2 פידבק
   19:54   21.07.13   
אל הפורום  
  3. תודה רבה!!! אני אנסה :)  
בתגובה להודעה מספר 2
 
  

קופון הנחה של 5% ל iHerb
https://goo.gl/Q6Tr1S
הרבה יותר טוב מ Vitacost


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Boss  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.9.08
6889 הודעות, 2 פידבק
   00:13   20.09.13   
אל הפורום  
  5. זה לא עבד (משהו תחבירי בשאילתה לא נכון) , אבל הקישור הבא כן,  
בתגובה להודעה מספר 3
 
   http://girirajcollections.blogspot.co.il/2012/11/mysql-blob-image-upload-tutorial.html

קופון הנחה של 5% ל iHerb
https://goo.gl/Q6Tr1S
הרבה יותר טוב מ Vitacost


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Boss  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.9.08
6889 הודעות, 2 פידבק
   19:55   21.07.13   
אל הפורום  
  4. שדה מסוג BLOB  
בתגובה להודעה מספר 1
 
  

קופון הנחה של 5% ל iHerb
https://goo.gl/Q6Tr1S
הרבה יותר טוב מ Vitacost


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
last_test
חבר מתאריך 20.8.13
328 הודעות
   02:16   20.09.13   
אל הפורום  
  6. אם יש לך המון קבצים זה לא רעיון טוב להחזיק את התמונה בשדה מסוג BLOB,  
בתגובה להודעה מספר 0
 
   1.זה הרבה יותר יקר משימוש ב-Filesystem
2.כדי להציג את התמונה דרוש קוד מיוחד ב-server side שאתה עובד איתו, לכתוב ממש את ה-HTTP Header של התמונה.

הייתי מחזיק ב-DB פשוט reference לתמונה + sha1 של התמונה (תוכל למנוע העלאות כפולות של תמונות).

כתשובה לשאלה שלך, אם בשרת מותקנת הרחבה של imagemagick תוכל להשתמש בgetimageblob על הקובץ ועדכן את השדה באמצעות שאילתא פשוטה של update.

אם אין לך imagemagick אתה יכול לעשות file_get_contents על הקובץ ולהחזיר את המידע שלו.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Boss  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.9.08
6889 הודעות, 2 פידבק
   14:33   21.09.13   
אל הפורום  
  7. יש באמת בעיית ביצועים משמעותית, מדובר ב 20,000 קבצים.  
בתגובה להודעה מספר 6
 
   1. המטרה הייתה לשמור את התמונות ב DB בשביל למנוע גישה ישירה לקבצי התמונה ללא הזדהות במערכת.

2. reference לתמונה = הכוונה לשמור את הנתיב היחסי של התמונה בשרת?
3. האם הפתרון שאתה מציע עונה על המטרה?
4. מתי מומלץ להקים טבלה נפרדת עבור שדה ה BLOB?

תודה רבה

קופון הנחה של 5% ל iHerb
https://goo.gl/Q6Tr1S
הרבה יותר טוב מ Vitacost


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
last_test
חבר מתאריך 20.8.13
328 הודעות
   15:24   21.09.13   
אל הפורום  
  8. תשובות,  
בתגובה להודעה מספר 7
 
   1.אתה תמיד יכול ליצור Proxy בין השרת לתמונה, אם אתה עובד עם PHP אתה פשוט משתמש ב-HTTP Headers הנכונים ופולט את התוכן של התמונה עם file_get_contents.

2.זאת בדיוק הייתה הכוונה, אתה תמיד גם יכול להריץ פונקצית Hash על התוכן של התמונה ולשמור את ה-Key שאתה מקבל, תוכל ככה למנוע תמנות כפולות.

3.בהחלט, הוא גם בוודאות הרבה יותר אופטימלי מאשר להשתמש ב-BLOB תחשוב ששימוש ב-BLOB מאט את הגיבויים גם למסד נתונים בגלל שאתה מחזיק את כל התמונות בתוך ה-DB, תצטרך לעבוד קשה כדי לממש Cache או שימוש ב-ETag.

4.תשתמש ב-BLOB בעיקר כשיש לך מידע מורכב, אובייקט שעשית לו סריאליזציה, אני אישית אף פעם לא השתמשתי בשדה הזה.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Boss  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.9.08
6889 הודעות, 2 פידבק
   15:30   21.09.13   
אל הפורום  
  9. תודה על התשובה המהירה,  
בתגובה להודעה מספר 8
 
   ערכתי לאחרונה בתאריך 21.09.13 בשעה 15:41 בברכה, The Boss
 
אני משתמש ב PHP.

1. האם הכוונה לאכסן את התמונות בתיקיה מקומית בשרת לטעון אותם עם file_get_contents ולאחר מכן לשלוף אותם בהתאם לתוכן בכתמונה עם שימוש ב


base64_encode($img)

2. אין מצב שיש כפילויות אז הסעיף לא רלוונטי.


תודה רבה

קופון הנחה של 5% ל iHerb
https://goo.gl/Q6Tr1S
הרבה יותר טוב מ Vitacost


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
last_test
חבר מתאריך 20.8.13
328 הודעות
   19:28   21.09.13   
אל הפורום  
  10. תשובות,  
בתגובה להודעה מספר 9
 
   אין צורך ב-base64, הרעיון הוא שתדפיס את התוכן ה-בינארי של התמונה ובנוסף תציב headers כדי שהדפדפן יידע שהוא הולך להציג תמונה, משהו בסגנון הזה:



header("Content-Type: image/jpeg");

echo file_get_contents($path);


בנוסף הייתי מחזיק בטבלה של התמונות גם את ה-mime-type של התמונה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Boss  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.9.08
6889 הודעות, 2 פידבק
   20:33   21.09.13   
אל הפורום  
  11. תודה רבה :)  
בתגובה להודעה מספר 10
 
  

קופון הנחה של 5% ל iHerb
https://goo.gl/Q6Tr1S
הרבה יותר טוב מ Vitacost


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net