الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحميل ورفع ملفات

مغلق
بدأه rolla_mohamed في 9 ديسمبر 2007 · 10 رد · 1,524 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم أريد أن أسأل أنا أريد أن أعمل كود download and upload وعملته فعلا المشكله أننا نقلنا الملفات على سيرفر أخر

فبالتالي المسار للفايل أتغير كتبت الip ثم المسار ب وعملت

IF File.Exist(192.168.4.243/edumedia/file1.txt)

لكنه لم يعمل وبالتالي مش عارفه أعمل download حيث أنني أستعمل الhttp في التنزيل والرفع وعندما أخذت المسار ووضعته مباشرة في url الملفات لو كانت pdf تفتح مباشرة ولا تجيب صفحة save,cancel,open وهذه مشكله تانيه

حاولت أعمل بال ftp لكني شغاله 2003 ومش عارفه أوصل فهل من إفاده

#2

في كود جافا سكربت سبق وشفته يخليك تعمل داون لود

اتمنى من خبراء الجافا سكربت أن يساعدونا في عمل وتعلم صفحة up-down بوساطة الـ ajax مبنية بواسطتنا تقوم بمحاكاة عملية الرفع وتخبرنا بكمية الرفع مباشرة

كما اصبحت اغلب برامج الـ php حالياً

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#3

File.Exist لاتصلح في هذا الوضع على كل حال ياريت يكون الطلب أكثر وضوحاً من أجل مساعدتك ويا صديقي الساحر لانحتاج إلى ajax على كل حال بدي اسئلك سؤال الـserver يلي عليه الملفات هل نستطيع ان نضع فيه صفحات اذا امكن ذلك نستطيع ان نضع class من نوع IHttpHandler ونسميه downloadوبكل سهولة نستطيع ان ندير التحميل وباستخدام الـjavascript

تم تعديل هذه المشاركة بواسطة محمد سماقية في 9 ديسمبر 2007 في 16:27

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#4
محمد سماقية كتب:
File.Exist لاتصلح في هذا الوضع على كل حال ياريت يكون الطلب أكثر وضوحاً من أجل مساعدتك ويا صديقي الساحر لانحتاج إلى ajax على كل حال بدي اسئلك سؤال الـserver يلي عليه الملفات هل نستطيع ان نضع فيه صفحات اذا امكن ذلك نستطيع ان نضع class من نوع IHttpHandler ونسميه downloadوبكل سهولة نستطيع ان ندير التحميل وباستخدام الـjavascript

اتمنى ان اجد منك المساعده بهذا الخصوص فمهما تقدمنا بالـ asp.net من دون javascript في الوقت لانسوى شيئاً فاتمنى بما ان وجودك معنا ان تقوم بمساعدتنا بهذا الموضوع فهم قلال خبراء javascript

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#5

شكرا على اهتمامكم أنا عندي 3 سيرفرات واحد عليه الداتابيز والثاني الموقع والثالث عليه الملفات التي أريد أن أرفعها وأنزلها

1- سؤالي بتوضيح أكثر أنا أستخدم دوت نت 2003 أريد رفع وتحميل ملفات خلال ال ftp ؟

2- طيب لو حبيت أعملها برده التحميل والرفع عن طريق هذا الكود فكيف أكتب مسار ال الملف وهو على سيرفر أخر وكيف أتأكد قبل تنزيله من أنه موجود أو لأ

[Public Shared Sub DownLoad(ByVal lecturePath As String)

Dim strRequest As String = lecturePath '-- if something was passed to the file querystring

If strRequest <> "" Then 'get absolute path of the file

'Dim path As String = Server.MapPath(strRequest) 'get file object as FileInfo

Dim file As System.IO.FileInfo = New System.IO.FileInfo(strRequest)

HttpContext.Current.Response.Clear()

HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)

HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString())

HttpContext.Current.Response.ContentType = "application/octet-stream"

''''''''''old

'HttpContext.Current.Response.WriteFile(file.FullName)

''''''''''/old

''''''''''new

Const ChunkSize As Long = 10000

Dim buffer(ChunkSize) As Byte

Dim iStream As FileStream = file.OpenRead

Dim dataLengthToRead As Long = iStream.Length

While dataLengthToRead > 0 AndAlso HttpContext.Current.Response.IsClientConnected

Dim lengthRead As Integer = _

iStream.Read(buffer, 0, ChunkSize)

HttpContext.Current.Response.OutputStream.Write(buffer, 0, lengthRead)

HttpContext.Current.Response.Flush()

dataLengthToRead = dataLengthToRead - lengthRead

End While

'''''''''/new

HttpContext.Current.Response.End()

End If

#6
[Public Shared Sub DownLoad(ByVal lecturePath As String)
Dim strRequest As String = lecturePath '-- if something was passed to the file querystring 
If strRequest <> "" Then 'get absolute path of the file 
'Dim path As String = Server.MapPath(strRequest) 'get file object as FileInfo 
Dim file As System.IO.FileInfo = New System.IO.FileInfo(strRequest)
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
HttpContext.Current.Response.AddHeader("Content-Length", file.Length.ToString())
HttpContext.Current.Response.ContentType = "application/octet-stream"
''''''''''old
'HttpContext.Current.Response.WriteFile(file.FullName)
''''''''''/old
''''''''''new
Const ChunkSize As Long = 10000
Dim buffer(ChunkSize) As Byte
Dim iStream As FileStream = file.OpenRead
Dim dataLengthToRead As Long = iStream.Length

While dataLengthToRead > 0 AndAlso HttpContext.Current.Response.IsClientConnected
Dim lengthRead As Integer = _
iStream.Read(buffer, 0, ChunkSize)
HttpContext.Current.Response.OutputStream.Write(buffer, 0, lengthRead)
HttpContext.Current.Response.Flush()
dataLengthToRead = dataLengthToRead - lengthRead
End While

'''''''''/new
HttpContext.Current.Response.End()
End If

هذه الاجرائية لن تعمل والسبب ان الملف اصبح على server أخر وليس لك أي سماحية للوصول للملف بشكل مباشر

وان اعتقد ان الحل كالتالي:

ضعي class يعمل implemenet من interface اسمها IHttpHandler

يوجد فيها اجرائيتن

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

من أجل معالجة الطلبية ضعي بداخلها الاجرائية السابقة

وبعد ذلك في ملف web.config ضيفي الاسطر التالية

<httpHandlers>

<remove verb="POST,GET" path="Download.axd"/>

<add verb="POST,GET" path="Download.axd" type="Download"/>

</httpHandlers>

والان تستطعين استدعاء الصفحة أو الطلب عن طريق العنوان الـserver الذي عليه الملفات + اسم الصفحة وهي DownLoad.axd عن طريق عنوان الطلب تستطيعين تمرير برامترات

مثال

http:\\serverNmae\ DownLoad.axd?paramter1=""&paramter2

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#7

شكرا لك كثيرا وجزاك الله خيرا ولكن معلش ممكن توضح أكتر وكيف هستخدمه في الرفعحيث كودي

fileUpload.PostedFile.SaveAs(filename)

وهل ممكن أستخدمه في file.exsist

#8
rolla_mohamed كتب:
شكرا لك كثيرا وجزاك الله خيرا ولكن معلش ممكن توضح أكتر وكيف هستخدمه في الرفعحيث كودي

fileUpload.PostedFile.SaveAs(filename)

وهل ممكن أستخدمه في file.exsist

شكراً

اكيد تستطعين مثل ما سبق يمكنك ان تبني class باسم upload مثلاً تجعلي اي صفحة ان تعمل postback عليها ويمكن ان تعالج بسهولة

على كل حال اذا حبيتي بزودك بمثال من عندي غداً

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#9

ربنا يوفقك وياريت تعملي مثال إذا لم أكن ثقلت عليك

#10
rolla_mohamed كتب:
ربنا يوفقك وياريت تعملي مثال إذا لم أكن ثقلت عليك

ان شاء الله في اقرب وقت

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#11

لقد جربت الي أنت قلتله ولم ينفع من مفضلك أكتبلي شرح أكثر

هذا الموضوع مغلق.

مواضيع مشابهة