PDA

View Full Version : سوال: ذخیره عکس در فولدرهای جداگانه



firoozi90
شنبه 30 خرداد 1394, 10:10 صبح
سلام دوستان
من یه جدول دارم که سه فیلد داره :
کد،نام فایل،آدرس فایل
میخوام آدرس عکس ها رو توی دیتابیس ذخیره کنم ،به طوری که وقتی کاربر روی دکمه اتچ کلیک کرد و یه عکس انتخاب کرد ،عکس در پوشه ی جداگانه که نام پوشه دقیقا هم نام کد جدول باشه ذخیره کنه،و موقع نمایش عکس هم از اون آدرس بخونه
ممنون میشم کمک کنید و بگید از چه روشی بهتره که استفاده کنم.

Delphi7_love
شنبه 30 خرداد 1394, 10:13 صبح
برای استفاده از این روش باید ابتدا اون رکورد رو ذخیره کنید ، بعد کدی که ثبت شده برگردونید و باز اونو به عنوان نام پوشه در نظر بگیرید
من نمیدونم مشکل شما کجاست

sajaaaaad
شنبه 30 خرداد 1394, 11:20 صبح
ب قول دوستمون شما اول توی جدول درج کن بعد مثلا میگم توی درایو d یک پوشه با همون نام درس کن و فایلاتو کپی کن. نگا من مشابه کاری که میخوای انجام بدی رو انجام دادم قبلاً..! البته یکمی متفاوته دیگ باید کداشو تغییر بدی.!


//Ejad poshereee......!!
//albate shoma baiad b jaie IpDestination adrese khodeto bedi.!!!
pathString = @"\\" + IpDestination + @"\" + NameFolder;
System.IO.Directory.CreateDirectory(pathString);

.
بالا اجاد پوشه توی مسیر مورد نظر.! بجای نام پوشه هم که همون کدتو میدی...
حالا کپی کردن فایلا
.


OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Title = "Select File";
openFileDialog1.Filter = "Pictures files (*.jpg)|*.jpg|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Multiselect = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (MessageBox.Show("آیا فایل ها ذخیره گردد؟", "ذخیره", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
foreach (String file in openFileDialog1.FileNames)
{


string[] Word = file.Split(new string[] { "\\" }, StringSplitOptions.None);
if (Word.Length > 1)
{
try
{
int index = Word.Length - 1;
DesPath = pathString + @"\" + Word[index];
File.Copy(file, DesPath, true);
}
catch
{
MessageBox.Show("فایل های ضمیمه شده ذخیر نگردید\nبرنامه را بسته دوباره تلاش کنید");
}
}
}
}
MessageBox.Show("کلیه فایل های ضمیمه شده ذخیره شد");
}
else
MessageBox.Show("فایل ها ذخیره نگردید");

sajaaaaad
شنبه 30 خرداد 1394, 11:23 صبح
یک نکته که هست اینکه مثلا میگم شما 5 تا عکس انتخاب میکنی، توی پوشه ای که ایجاد کردی باید با همون نام ها ذخیره بشه دیگه! واسه همین میام اسم تک تک فایل رو در میاری و به آدرست اضافه مکینی تا کپی انجام بشه. واسه نمایششم میتونی همون پوشه رو مستقیم باز کنی، یا کاری که من کردم این بود که عکسای توی داکیومنت طرف کپی میشد و میدید.! چون برنامه تحت شبکه بود. از سرور کپی میکردم و توی سیستم کاربر نمایش میدادم. اگ خواستی بگو این قسمت کدشم برات پیدا کنم.!

alireza264
شنبه 30 خرداد 1394, 12:07 عصر
سلام دوستان
من یه جدول دارم که سه فیلد داره :
کد،نام فایل،آدرس فایل
میخوام آدرس عکس ها رو توی دیتابیس ذخیره کنم ،به طوری که وقتی کاربر روی دکمه اتچ کلیک کرد و یه عکس انتخاب کرد ،عکس در پوشه ی جداگانه که نام پوشه دقیقا هم نام کد جدول باشه ذخیره کنه،و موقع نمایش عکس هم از اون آدرس بخونه
ممنون میشم کمک کنید و بگید از چه روشی بهتره که استفاده کنم.

سبام برای انتخاب عکس و کپی کردنش در شاخه داخل پروژت


openFileDialog1.Filter = "Picture (*.jpg)|*.jpg|GIF (*.gif)|*.gif|PNG (*.png)|*.png|BMP (*.bmp)|*.bmp";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Pic_Person.Image = System.Drawing.Image.FromFile(openFileDialog1.File Name);
System.IO.File.Copy(openFileDialog1.FileName, @"c:\myproject\pic\" + openFileDialog1.SafeFileName,true);
}

firoozi90
دوشنبه 01 تیر 1394, 07:17 صبح
ب قول دوستمون شما اول توی جدول درج کن بعد مثلا میگم توی درایو d یک پوشه با همون نام درس کن و فایلاتو کپی کن. نگا من مشابه کاری که میخوای انجام بدی رو انجام دادم قبلاً..! البته یکمی متفاوته دیگ باید کداشو تغییر بدی.!


//Ejad poshereee......!!
//albate shoma baiad b jaie IpDestination adrese khodeto bedi.!!!
pathString = @"\\" + IpDestination + @"\" + NameFolder;
System.IO.Directory.CreateDirectory(pathString);

.
بالا اجاد پوشه توی مسیر مورد نظر.! بجای نام پوشه هم که همون کدتو میدی...
حالا کپی کردن فایلا
.


OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Title = "Select File";
openFileDialog1.Filter = "Pictures files (*.jpg)|*.jpg|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Multiselect = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (MessageBox.Show("آیا فایل ها ذخیره گردد؟", "ذخیره", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
foreach (String file in openFileDialog1.FileNames)
{


string[] Word = file.Split(new string[] { "\\" }, StringSplitOptions.None);
if (Word.Length > 1)
{
try
{
int index = Word.Length - 1;
DesPath = pathString + @"\" + Word[index];
File.Copy(file, DesPath, true);
}
catch
{
MessageBox.Show("فایل های ضمیمه شده ذخیر نگردید\nبرنامه را بسته دوباره تلاش کنید");
}
}
}
}
MessageBox.Show("کلیه فایل های ضمیمه شده ذخیره شد");
}
else
MessageBox.Show("فایل ها ذخیره نگردید");

ممنون دوست عزیز
اما اگر بخوام که کاربر فقط بتونه یک فایل رو انتخاب کنه و بعد نام فایل به کد جدول تغییر پیدا کنه چیکار باید کنم؟
و در آخر هم میخوام کل مسیر رو بدست بیارم

alireza264
دوشنبه 01 تیر 1394, 09:20 صبح
ممنون دوست عزیز
اما اگر بخوام که کاربر فقط بتونه یک فایل رو انتخاب کنه و بعد نام فایل به کد جدول تغییر پیدا کنه چیکار باید کنم؟
و در آخر هم میخوام کل مسیر رو بدست بیارم

سلام
برای اینکه فقط یک فایل انتخاب بشه

openFileDialog1.Multiselect = False;


کل مسیر هم با openFileDialog1.FileName


اما اگه نام فایل عوض بشه یا فایل پاک بشه مشکل میخوری