PDA

View Full Version : تصویر رو توی بانک اطلاعاتی ذخیره نکنه



azadeh_1510
سه شنبه 04 مرداد 1390, 10:59 صبح
من مسیر فایل رو توی دیتا بیس ذخیره میکنم.
میخوام توی گرید روی اسم فایل که بصورت link هست کلیک کنم و اوون فایل رو باز کنه.
در ضمن فایل روی سرور هست.

alirezamli
سه شنبه 04 مرداد 1390, 11:55 صبح
با سلام
باید ابتدا آدرس ذخیره شدن فایل را توی DataGridView بخونی بعد به صورت زیر عمل بکنی

string PicPath = string.Empty;
PicPath = DataGridView1.CurrentRow.Cells[0].Value.ToString();
PictureBox1.Image = Image.FromFile(PicPath);

azadeh_1510
سه شنبه 04 مرداد 1390, 17:19 عصر
ازتون متشکرم
حالا اگه بخواهم بغیر از تصویر ؛ مثلا فایل ورد یا اکسل رو هم به این صورت نگهداری کنم چکار باید کرد؟

Esmail Solhkhah
سه شنبه 04 مرداد 1390, 17:42 عصر
ازتون متشکرم
حالا اگه بخواهم بغیر از تصویر ؛ مثلا فایل ورد یا اکسل رو هم به این صورت نگهداری کنم چکار باید کرد؟


string FilePath = "d:\\1.xls";
System.Diagnostics.Process.Start(FilePath);

درحالت کلی هر فایلی که در ویندوز با دابل کلیک توسط نرم افزار مربوطش باز میشه از این طریق قابل اجراست.

موفق باشید.

azadeh_1510
چهارشنبه 05 مرداد 1390, 15:56 عصر
دست شما درد نکنه

azadeh_1510
شنبه 08 مرداد 1390, 15:10 عصر
ببخشید که دوباره مزاحم دوستان میشم
برای نمایش تصویر راهکاری که ارائه داده بودین رو انجام دادم
منتها برای اینکه کاربر بتونه فایلی که دارد را در مسیری از سرور ذخیره کند ؛چطور اینکار را انجام بدهد (منظورم Browse است).
یک کنترل بنام FolderBrowserDialog هست اما روی فرم نمیفتد!

alirezamli
شنبه 08 مرداد 1390, 20:35 عصر
ببخشید که دوباره مزاحم دوستان میشم
برای نمایش تصویر راهکاری که ارائه داده بودین رو انجام دادم
منتها برای اینکه کاربر بتونه فایلی که دارد را در مسیری از سرور ذخیره کند ؛چطور اینکار را انجام بدهد (منظورم Browse است).
یک کنترل بنام FolderBrowserDialog هست اما روی فرم نمیفتد!

سلام
با استفاده از کنترل SaveFileDialog می تونید فایل را در یک مسیر مشخص بر روی هارد ذخیره کنید.

azadeh_1510
یک شنبه 09 مرداد 1390, 08:32 صبح
سلام
من از کد زیر که از اینترنت سرچ کردم استفاده کردم به اینصورت:
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "C# Corner Open File Dialog";
fdlg.InitialDirectory = "My Computer";
fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
fdlg.FilterIndex = 2;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
visiteCard1TextBox.Text = fdlg.FileName;
}
که درست کار میکنه
منتها حالا یه خواسته دیگه رو باید در نظر گرفت که هر کاربر فایلی رو که انتخاب میکنه ؛ میخواهیم آن فایل بطریقی ( مثلا با یک نام یا شماره منحصر بفردی که از سیستم بگیره؛نمیدونم ....پیشنهاد شما چیه؟) در سرور روی مسیر گفته شده ذخیره شود؛ یعنی همه فایلها یی که کاربران انتخاب میکنند روی این مسیر از سرور
\\servername\pic
ذخیره بشه.
و بعد از همان مسیر هم باز بشه.
بطور خلاصه:بنظرتون چطوری توی سرور فایلها ذخیره بشه و بعد هم از روی این مسیر سرور باز بشه؟

alirezamli
یک شنبه 09 مرداد 1390, 09:06 صبح
با سلام
اگر مسیر شما ثابته دیگه نیازی به استفاده از SaveFileDialog ندارید پیشنهاد من اینه که یک فیلد به نام ID توی جدولتون اضافه کنید و نوعش را Int انتخاب کنید و Identity آن را Yes کنید حالا زمانی که می خواهید یک رکورد جدید ثبت کنید مسیر را که به صورت ثابت در برنامه دارید فقط اسم فایل را برابر با مقدار فیلد ID قرار بدهید و اونو ذخیره کنید. با این روش تمام فایلها در یک مسیر مشخص و با نامهای منحصر به فرد ذخیره می شوند .

azadeh_1510
یک شنبه 09 مرداد 1390, 09:34 صبح
ممنون از جوابتون
نه دوست عزیز مسیر ثابت نیست
یه تعداد کاربر هستند که از این برنامه استفاده میکنند
هرکدام ممکنه بخوان از هارد خودشون(که مسیرای متفاوت داره) فایل رو روی یک مسیر ثابت در سرور ذخیره کنند.
برای نام روشی که گفتین اوکی هست اما برای کپی کردن خود فایل از کامپیوتر هر کاربر روی سرور چه باید کرد؟

alirezamli
یک شنبه 09 مرداد 1390, 10:23 صبح
ممنون از جوابتون
نه دوست عزیز مسیر ثابت نیست
یه تعداد کاربر هستند که از این برنامه استفاده میکنند
هرکدام ممکنه بخوان از هارد خودشون(که مسیرای متفاوت داره) فایل رو روی یک مسیر ثابت در سرور ذخیره کنند.
برای نام روشی که گفتین اوکی هست اما برای کپی کردن خود فایل از کامپیوتر هر کاربر روی سرور چه باید کرد؟

دوست عزیز تا جایی که من اطلاع دارم (خیلی مطمئن نیستم) اگه بخواهید از کنترل SaveFileDialog برای ذخیره کردن فایل ها استفاده کنید این کنترل خاصیتی تحت عنوان FileName داره ولی فکر کنم که این خاصیت فقط-خواندنی است و شما نمی تونید اونو تغییر بدهید و اسم فایل را خودتون بهش اضافه کنید.اما برای کپی کردن فایل می تونید از دستور زیر استفاده کنید :
این قطعه کد محتویات فایلی را که توسط کنترل OpenFileDialog باز شده است را تو مسیر داده شده کپی(ذخیره) میکنه:


FileInfo file = new FileInfo(dlg.FileName);
try
{
file.CopyTo("D:\\Test.jpg");
}
catch
{
MessageBox.Show("This File Already Saved");
}

Esmail Solhkhah
یک شنبه 09 مرداد 1390, 14:43 عصر
دوست عزیز برنامشو براتون نوشتم

موفق باشید.

Esmail Solhkhah
یک شنبه 09 مرداد 1390, 15:07 عصر
بله

فایل هم دست آپ شده

azadeh_1510
دوشنبه 10 مرداد 1390, 11:52 صبح
از همکاری همگی بسیار ممنون

azadeh_1510
چهارشنبه 19 مرداد 1390, 10:48 صبح
یه دخواست دیگه دارم
چطوری میشه که هم بتونم لینک تصویر را ازتوی برنامه حذف کنم هم از توی سرور؟

azadeh_1510
چهارشنبه 19 مرداد 1390, 12:17 عصر
یک توضیحی که میخواستم بدم اینه که :برای کلیک دکمه load تصویر برروی سرور این کد رو دارم:
private void btnfolderPath_Click(object sender, EventArgs e)
{
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "Select Your File for Save to server";
fdlg.InitialDirectory = "My Computer";
fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
fdlg.FilterIndex = 2;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
string serverPath = "\\\\sap\\Dastyaran";

string FileNameWithoutExtension = Path.GetFileNameWithoutExtension(fdlg.FileName);

string Extension = Path.GetExtension(fdlg.FileName);

string UniqFileName = FileNameWithoutExtension + Guid.NewGuid().ToString() + Extension;

string FullDestFilePath = serverPath + "\\" + UniqFileName;

visiteCard1TextBox.Text = FullDestFilePath;



try
{
File.Copy(fdlg.FileName, FullDestFilePath, true);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
//visiteCard1TextBox.Text = fdlg.FileName;
}

}
و برای باز کردن توسط دکمه open از سرور این کد را دارم:
private void btnExServer_Click(object sender, EventArgs e)
{


string SourceFileName = visiteCard1TextBox.Text;
if (File.Exists(SourceFileName))
{

string tempPath = Path.GetTempPath();

string FileName = Path.GetFileName(SourceFileName);

string DestFileName = tempPath + FileName;

try
{
File.Copy(SourceFileName, DestFileName, true);

if (File.Exists(DestFileName))
System.Diagnostics.Process.Start(DestFileName);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}


}
و توی یک textbox آدرس و نام فایل ذخیره شده را نگه میدارد ؛حالا برای حذف چه باید کرد؟هم از برنامه و هم عکس از سرور....

White.Wit
چهارشنبه 19 مرداد 1390, 12:52 عصر
سلام .
من البته مطمئن نیستم ولی فکر می کنم تو همون قسمتی که کاربر از پنجره SaveFileDialog استفاده میکنه میتونه به جای انتخاب مسیر محلی ،مسیر تعریف شده سرور رو برای ذخیره فایل انتخاب کنه و به نظر من به برنامه نویس کاری نداره.

azadeh_1510
چهارشنبه 19 مرداد 1390, 13:27 عصر
با سلام ممنون
اما گویا منظور منو درست برداشت نکردین دوست عزیز؛در حال حاضر من برای ذخیره فایل مشکلی ندارم برای حذف فایل ذخیره شده مشکل دارم
با تشکر
kasi mitoone javab bede plz?

azadeh_1510
پنج شنبه 20 مرداد 1390, 17:46 عصر
kasi mitoone javab bede plz?