یه سئوال در asp دارم

rezsat

Member
لطفا این کد رو ببینید و بگید که کجاش مشکل داره
sample1.asp
کد:
<%
Dim Path
Dim FileName
Dim File

For each Path in Request.QueryString("FILEU")
	if Path <> "" then
		FileName = Split(Path, "\", -1, 1)
		'file = "a" & FileName
		[COLOR="Red"]Response.Write(FileName) &"<br>"[/COLOR]
		Response.Write(Path) &"<br>"
	end if	
Next
%>
وقتی که خروجی میگیرم این ارورو میده
Microsoft VBScript runtime (0x800A000D)
Type mismatch
از خط قرمز رنگ ارور میگیره.
کد صفحه قبلشم اینه
sample1.htm
کد:
<HTML>
<BODY BGCOLOR="white">

<H1>Sample 1.htm</H1>
<HR>

<FORM METHOD="get" ACTION="Sample1.asp" ENCTYPE="multipart/form-data">
   <INPUT TYPE="FILE" NAME="FILEU" SIZE="50"><BR>
   <INPUT TYPE="FILE" NAME="FILEU" SIZE="50"><BR>
   <INPUT TYPE="FILE" NAME="FILEU" SIZE="50"><BR>
   <INPUT TYPE="FILE" NAME="FILEU" SIZE="50"><BR>
   <INPUT TYPE="SUBMIT" VALUE="Upload">
</FORM>

</BODY>
</HTML>

من میخوام نام فایلهایی رو که از صفحه قبل میاد با فرمتشون در صفحه نشون بدم
 
آخرین ویرایش:

mehradmoein

Member
دستور split يك رشته را تبديل به يك آرايه مي كند.براي همين نمي توان آن را بدون انديس نمايش داد.
كد را به اين كد زير تغيير بدهيد:
response.write(filename(0))
من نمي دونم كه شما دقيقا چه كاري مي خواهيد انجام بديد ولي اين دستور split رشته ي شما را به چند رشته كه با / از هم جدا شده اند جدا مي كند و هر كدام را بدون / در يك آرايه ذخيره مي كند.حالا اين ديگه بستگي داره كه شما به كجاي اون رشته احتياج داشته باشيد.عدد 0 كه در كد من بود به معني اولين قسمت رشته هست.شما مي تونيد اين عدد رو به نسبت كاري كه مي خواهيد انجام بديد عوض كنيد.
 

rezsat

Member
دوست عزيز.من ميخوام بتونم مثلا از اين ادرس
J:\Pages\contacts.txt
اين قسمت رو استخراج كنم
contacts.txt
كه البته بايد متذكر بشم كه لزوما هميشه ادر س url شامل 3 قسمت نيست.مثلا ممكنه اينطوري باشه
J:\Pages\Lan\8_files\link_6.gif
كه در اينجا من اينو ميخوام
link_6.gif
كدي كه شما داديد چون از سمت چپ شروع ميشه مشكل داره.بايد بشه گفت اول بيا انتهاي خط سمت راست بعد قسمت اول يا همون عدد صفر رو انتخاب بكن
 

mosyhey

Member
دوست گرامی سلام
آدرست را بگذار تو address به تو نام فایل و پسوندش را که می خواهی در متغیر file می دهد و چاپ می کند .
کد:
[LEFT]<%
Dim address
Dim fn_arr
Dim file
address="J:\Pages\Lan\8_files\link_6.gif"
fn_arr=Split(address,"\")
file=fn_arr(UBound(fn_arr))
Response.Write(file)
%>
[/LEFT]
توضیح آنکه UBound ایندکس آخرین آرایه را بر می گرداند ، آرایه ای را که اسمش در () جلویش بیاید .
 

rezsat

Member
اقا یه سئوال مهم؟
اگه ما اطلاعاتی رو با متد post به صفحه for each بفرستیم و به جای
For each Path in Request.QueryString("FILEU")
از
For each Path in Request.Form("FILEU")
استفاده کنم چرا حلقه دیگه کار نمیکنه.
یعنی من امدم به جای کد بالای صفحه نوشتم
کد:
<%
dim p_file
dim path

'p_file = Request.Form("file")
For each Path in Request.Form("file")
	if Path <> "" then
		Response.Write("No Error")
	else
		Response.Write("Error")
	end if	
Next
	
%>
اما هیچی به من نشون نمیده.یعنی for each نمیتونه با متد post کار کنه؟
 

mehradmoein

Member
این طور نیست.for each با هر چیزی می تونه کار کنه.مشکل خیلی عجیبی هست.حتما یک جای کار اشتباه داره.
اگه می شه کد کامل صفحه ها رو برام بزار اینجا.
راستی از request("file") هم استفاده کن و نتیجش رو بگو.
 

rezsat

Member
كد همونايي كه گذاشتم
يعني كد صفحه sample1.htm كه همونه فقط به جاي get شده post و كد صفحه sample1.asp هم اين كد پايينه
 

جدیدترین ارسال ها

بالا