PDA

View Full Version : سوال: مشکل در گرفتن آدرس فایل انتخاب شده در FileUpload



niksoft
جمعه 17 اردیبهشت 1389, 00:19 صبح
با سلام
من برای گرفتن آدرس کامل فایل انتخاب شده در FileUpload از دستور زیر استفاده می کنم



FileUpload.PostedFile.FileName
ولی این دستور فقط نام فایل را بر میگرداند نه آدرس کامل فایل را

از طرفی استفاده از دستور زیر هم آدرس غلطی برمیگرداند


Path.GetFullPath(FileUpload.PostedFile.FileName)
از دوستان کسی تا به حال به این مشکل برخورده ؟

nPad.Net
جمعه 17 اردیبهشت 1389, 00:58 صبح
FileUpload.PostedFile.FileName
ولی این دستور فقط نام فایل را بر میگرداند نه آدرس کامل فایل را


سلام دوست عزیز
شما باید به جای FileUpload دردستور بالا نام instance از FileUpload رو بنویسید.
موفق باشید

niksoft
جمعه 17 اردیبهشت 1389, 18:12 عصر
دوست عزیز منظور بنده از FileUpload همان اینستنس FileUpload بود
مثل FileUpload1

Peyman.Gh
جمعه 17 اردیبهشت 1389, 18:17 عصر
منظور شما گرفتن مسیر فایل انتخاب شده میباشد ؟!

C:\Documents and Settings\Admin\Desktop\Test.Txt

alasht
شنبه 16 بهمن 1389, 15:14 عصر
منظور شما گرفتن مسیر فایل انتخاب شده میباشد ؟!

C:\Documents and Settings\Admin\Desktop\Test.Txt


من این مشکلو دارم یعنی میخوام ادرس فایل انتخاب شده از سیستم رو درون یک متغیر ذخیره کنم
ممنون میشم راهنمایی کنید

Javad_Darvish_Amiry
شنبه 16 بهمن 1389, 19:03 عصر
سلام. تگ input type=file که همون رندر شده فایل-آپلود خودمون هست فقط فایل رو به سرور انتقال میده (پست میکنه) و آدرس لوکال فقط تو مرورگر وجود داره. شما برای گرفتن آدرس کامل فایل رو لوکال میتونید بیاید مثلا یه تگ هیدن تو صفحه بذارید و تو رویداد (سمت کلاینت) onchange فایل-آپلود یه تابع جاوا اسکریپت بنویسید که بعد از اینکه تگ مورد نظر مقدار گرفت (یعنی فایل توسط کاربر انتخاب شد) محتوای تگ رو بخونه و اونو بریزه تو hidden و سمت سرور هم شما مسیر کامل رو از تو اون هیدن بخونید. موفق باشید.

alasht
شنبه 16 بهمن 1389, 19:39 عصر
سلام
میشه یه نمونه بزارید
چون توضحاتتون رو متوجه نشدم
اگه با مثال و کد باشه بهتره

alasht
شنبه 16 بهمن 1389, 19:57 عصر
بالاخره با کلی جستجو این کد رو پیدا کردم


<html>
<head>
<title>Example using FileUpload object </title>
</head>
<body>
<script language="JavaScript">
<!--
function showname(){
var file = document.form1.uploadBox.value ;
document.form1.filename.value = file ;
}
-->
</script>
<form name="form1">
Click on browse to choose a file to send.
<br>
Click on the Send button to see the full path for the file sent.
<br><br>
File to send: <input type="file" name="uploadBox">
<br><br>
<input type="button" value="Send" name="get" onClick='showname()'>
<br><br>
<input type="text" name="filename" size="40">
</form>
</body>
</html>


اما یه مشکل اساسی داره
این کد تو IE ادرس رو میده اما تو firefox و دیگر مرورگرا فقط اسم فایل رو میده
چیکار کنم که تو همه مرورگرا ادرس فایل رو بده ؟
با تشکر

Javad_Darvish_Amiry
شنبه 16 بهمن 1389, 20:55 عصر
تو صفحه ای که فایل-آپلود دارید فایل-آپلود رو به شکل زیر تغییر بدید و تگ هیدن و اسکریپت رو هم به شکل زیر اضافه کنید:


<input type="hidden" id="myhidden" name="myhidden" />
<asp:FileUpload runat="server" ID="fileUpload1" onchange="javascript:fileChange(this.value)" />
<script type="text/javascript">
function fileChange(value){
document.getElementById("myhidden").value = value;
}
</script>
برای بازیابی مسیر کامل فایل سمت سرور هم از کد زیر استفاده کنید:


string filePath = this.Page.Request.Form["myhidden"];
اما: یه نکته مهم رو فراموش نکنید و اونم این که مرورگر های جدید مثل IE 8 به بالا و فارفاکس ۳ به بالا به خاطر موارد امنیتی اجازه ارسال مسیر کامل فایل رو نمیدن و اصلا اجازه نمیدن این مسیر حتی تو تگ فایل هم قرار بگیره. یعنی تو این مرورگرها مقداری که به دست میارید با مقداری که فعلا دارید برابرن. اما تو مرورگر های قدیمی تر کار میکنه. موفق باشید.
************************************************** ************************************************** ***************************************
خوب من پست شما رو بالا ندیدم. بعد از ارسال پست خودم دیدم برای همین پست رو ویرایش میکنم. هیچ راهی برای به دست آوردن مسیر کامل فایل به دلیلی که بالا عرض کردم خدمتتون؛ تو مرورگر های جدید نداریم. موفق باشید.

LadyWonderFul
شنبه 16 بهمن 1389, 21:58 عصر
شما نمی تونید با استفاده از fileUpload مسیر فایل رو بگیرید