PDA

View Full Version : مشکل در ذخیره کرن نام تصویر در پایگاه داده



syasamboo3
دوشنبه 02 اردیبهشت 1392, 18:18 عصر
سلام دوستان.
لطفا یه کمکی به من بیچهره بکنید.بخدا ثواب داره
میخوام تو پایگاه داده عکس ذخیره کنم.هر جا رو گشتم گفتن بهتره اسم عکس رو ذخیره کنی و خود عکی رو تو یه پوشه جدا.
جایی هم واسه راهنمایی درست در این موردنتونستم پیدا کنم.
اگه دوستان یه زحمت بکشن اینو هم به من بگن ممنون میشم.
میخوام تصویر که انتخاب شد اسمش بره تو بانک.همین.ممنون میشم

mehdiv
دوشنبه 02 اردیبهشت 1392, 18:31 عصر
ببین باید تو قسمتی که داری اطلاعات رو ایمپورت میکنی جای ایمپورت عکس تو دیتابیس یه پوشه بسازی و آدرس اونو بهش بدی و موقعی که خواست اطلاعات تو دیتابیس ثبت بشه اسم عکس رو میگیری میدی به دیتا بیس

syasamboo3
دوشنبه 02 اردیبهشت 1392, 18:34 عصر
پوشه رو هم ساختم.عکس هم توی پوشه میره.مشکل من اینه که
1-اسم عکس رو چطوری تو پایگاه ذخیره کنم؟
2- چطوری اسم عکس رو صدا بزنم که نمایش داده بشه؟

msnabed
دوشنبه 02 اردیبهشت 1392, 18:38 عصر
سلام . شما مشكل رو گفتي ولي نگفتي كه از چه پايگاه داده استفاده مي كني . ولي به هر حال ميشه اينطور راهنمايي كرد :
شما براي ذخيره يك تصوير و يا هر فايل ديگه بايد اون فايل رو به يك رشته (آرايه) از بايت تبديل كنيد و بعد اين رشته رو توي ديتابيس خودت ذخيره كني .
قبل از اون هم بايد فيلدي كه قراره تصوير رو ذخيره كنه از نوع Binary انتخاب كنبي . مثلا در ديتا بيس اكسس از نوع OLE Object و در ديتا بيس SQL Server از نوع varbinary(max) استفاده كني . حالا من طريقه تبديل يك تصوير رو به يك آرايه بايتي و برعكس رو كه به زبان VB نوشته شده به شما ميگم :
تابع تبديل تصوير به آرايه اي از بايت :

Public Function PictureToByte(ByVal Img As System.Drawing.Image, ByVal imgFormat As System.Drawing.Imaging.ImageFormat) As System.Byte()
Dim Mstream As IO.MemoryStream = New IO.MemoryStream
Img.Save(Mstream, imgFormat)
PictureToByte = Mstream.GetBuffer
Mstream.Close()
End Function
كه خروجي ايت تابع آماده ذخيره در ديتا بيس هست.
تابع تبديل آرايه بايتي به تصوير :

Public Function ByteToPicture(ByVal ByteSt As System.Byte()) As System.Drawing.Image
Dim MStream As IO.MemoryStream = New IO.MemoryStream(ByteSt)
ByteToPicture = System.Drawing.Image.FromStream(MStream)
' MStream.Close()
End Function
كه خروجي ديتابيس رو با اين تابع تبديل به تصويرش مي كني .
به همين راحتي .:تشویق:



ضمنا ببخشيد ، بعد از اينكه جواب رو فرستادم فهميدم توي فروم PHP بودم . به هرحال شايد به دردتون بخوره و با كدهاي PHP بتونيد اين كار رو انجام بديد.

syasamboo3
دوشنبه 02 اردیبهشت 1392, 18:48 عصر
ممنون msnabed (http://barnamenevis.org/member.php?50814-msnabed)
ولی بخدا عقل ناقص من به این چیزایی که فرمودید قد نمیده

pary_daryayi
سه شنبه 03 اردیبهشت 1392, 07:17 صبح
من یه نمونه برای آپلود فایل(مثلا تصویر) اینجا (http://forum.iranphp.org/Thread-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D9%81%D8%A7%DB%8C%D9%84--5773) گذاشتم . ببینید میتونه کمکتون کنه .

فرزند کوروش
سه شنبه 03 اردیبهشت 1392, 09:13 صبح
اسم عکس رو میتونی با دستور

$_FILES['userfile']['name'];
بگیری. فقط دقت کن جای userfile باید اسم فیلد مربوط به اپلود رو بنویسی مثلا

<input type="file" name="userfile" />