المشاركات : 73
المواضيع 11
الإنتساب : Jul 2014
السمعة :
0
الشكر: 0
تم شكره 3 مرات في 2 مشاركات
كيف أصنع برنامج رفع ملفات لسرفر مثل 0zz0
gulfup...
المشاركات : 1,733
المواضيع 147
الإنتساب : Sep 2012
السمعة :
215
الشكر: 8484
تم شكره 12163 مرات في 1145 مشاركات
قمت بتوضيح ذلك بالكامل في مقالتي
[سلسلة التعامل مع الويب] - ارسال الطلبات HttpWebRequset
^ هناك جزئية كاملة تتحدث عن المطلوب (في المشاركة الثالثة)
لازلت اقول ياجماعة
اي خدمة تريد الحصول عليها من اي موقع استعمل الطلبااات (WEB REQUSET)
المشاركات : 73
المواضيع 11
الإنتساب : Jul 2014
السمعة :
0
الشكر: 0
تم شكره 3 مرات في 2 مشاركات
لكن أحتاج طرقة بال vb.net
المشاركات : 1,733
المواضيع 147
الإنتساب : Sep 2012
السمعة :
215
الشكر: 8484
تم شكره 12163 مرات في 1145 مشاركات
elta كتب :لكن أحتاج طرقة بال vb.net
وله يهمك
استطيع كتابة الكلاس من جديد بالفيجوال بيسك
لكن المشكلة هل ستستطيع استخدام الكلاس ؟
لانك لازم تجيب بعض المعلومات من اداة Live http header
المشاركات : 73
المواضيع 11
الإنتساب : Jul 2014
السمعة :
0
الشكر: 0
تم شكره 3 مرات في 2 مشاركات
لا + لو يمكنك إعطائي سورس
لأتعلم منه
المشاركات : 1,733
المواضيع 147
الإنتساب : Sep 2012
السمعة :
215
الشكر: 8484
تم شكره 12163 مرات في 1145 مشاركات
elta كتب :لا + لو يمكنك إعطائي سورس
لأتعلم منه
اممم
المشكلة ليست من السورس
المشكلة انك بتحتاج الى تطبيق الrequset لإستخراج المعلومات بواسطة live header وكتابة طلب
فلو اعطيتك السورس مابتستفيد لان بضل هناك شيئ ناقص في الموضوع
يعني بتقول هذا من وين جاب هذا الكلام وليش كتب جدي ؟؟!
وايضا من كل موقع لموقع تختلف المعطيات يعني لو عطيتك الطريقة على موقع gulfup
ورحت تجربها على 0xx0 مابتنفع
لازم تعطيها متغيرات اخرى عشان تقدر ترفع الى 0xx0
--
حبيبي هذي الامور انت لازم تتعلمها ماتصلح احد يعطيك الطريقة لأنها ستكون لشيئ واحد بس
انا فقط سأوفر لك الفئة المستعملة في الرفع لأي موقع محولة للفيجوال بيسك :
PHP كود :
'All Copyright to alshakiLLah 'vb4arb ''' <summary> ''' ارفع ملفاتك لمراكز الرفع ''' </summary> ''' <remarks></remarks> Public Class UploadStationPOST Public Shared Function PostToStations(ByVal PostURL As String, ByVal PostDataParameters As Dictionary(Of String, Object)) As String Dim boundary As String = "---------------------------" + DateTime.Now.Ticks.ToString("x") Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + vbCr & vbLf)
Dim request As Net.HttpWebRequest = DirectCast(Net.WebRequest.Create(PostURL), Net.HttpWebRequest) request.ContentType = Convert.ToString("multipart/form-data; boundary=") & boundary request.Method = "POST" request.KeepAlive = True request.Credentials = System.Net.CredentialCache.DefaultCredentials
If PostDataParameters IsNot Nothing AndAlso PostDataParameters.Count > 0 Then
Using requestStream As IO.Stream = request.GetRequestStream()
For Each pair As KeyValuePair(Of String, Object) In PostDataParameters requestStream.Write(boundaryBytes, 0, boundaryBytes.Length) If TypeOf pair.Value Is FileDisposition Then Dim file__1 As FileDisposition = DirectCast(pair.Value, FileDisposition) Dim header As String = (Convert.ToString((Convert.ToString("Content-Disposition: form-data; name=""" + pair.Key + """; filename=""") & file__1.Name) + """" & vbCr & vbLf & "Content-Type: ") & file__1.ContentType) + vbCr & vbLf & vbCr & vbLf Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(header) 'كتابة معلومات الملف requestStream.Write(bytes, 0, bytes.Length)
Dim buffer As Byte() = New Byte(0) {} 'تجهيز المصفوفة Dim bytesRead As Integer ' كتابة بايتات الملف Using fileStream As IO.FileStream = IO.File.OpenRead(file__1.FilePath) While (InlineAssignHelper(bytesRead, fileStream.Read(buffer, 0, buffer.Length))) <> 0 requestStream.Write(buffer, 0, bytesRead) End While fileStream.Close() End Using Else 'البارمترات الاخرى غير بارمتار فايلس Dim data As String = "Content-Disposition: form-data; name=""" + pair.Key + """" & vbCr & vbLf & vbCr & vbLf + pair.Value Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(data) requestStream.Write(bytes, 0, bytes.Length) End If Next Dim trailer As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + "--" & vbCr & vbLf) requestStream.Write(trailer, 0, trailer.Length) requestStream.Close() End Using End If
'الرد Using response As Net.WebResponse = request.GetResponse() Using responseStream As IO.Stream = response.GetResponseStream() Using reader As New IO.StreamReader(responseStream, System.Text.Encoding.UTF8) Return reader.ReadToEnd() End Using End Using End Using End Function
Public Class FileDisposition Public Property Name() As String Get Return m_Name End Get Set(ByVal value As String) m_Name = Value End Set End Property Private m_Name As String
Public Property ContentType() As String Get Return m_ContentType End Get Set(ByVal value As String) m_ContentType = Value End Set End Property Private m_ContentType As String
Public Property FilePath() As String Get Return m_FilePath End Get Set(ByVal value As String) m_FilePath = Value End Set End Property Private m_FilePath As String End Class Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T target = value Return value End Function
End Class
اما طريقة الاستخدام (لموقع IraqUp فقط ولاتصلح لغيره)
PHP كود :
Dim postURL As String = "http://www.iraqup.com/index2.php" 'ResultButton.Enabled = false; Dim ext As String = System.IO.Path.GetExtension("Ahmed.jpg").ToLower() ext = ext.Remove(0, 1) If ext = "jpg" Then ext = "jpeg" End If 'on internet jpg is named jpeg Dim para As New Dictionary(Of String, Object)() 'para
'اسم الصورة 'صيغة الصورة 'مكان الصورة para.Add("userfile", New UploadStationPOST.FileDisposition() With { _ .Name = "ali.png", _ .ContentType = "image/png", _ .FilePath = "c://ali.png" _ })
'post Dim _result = UploadStationPOST.PostToStations(postURL, para)
اذا كنت تريد الرفع لموقع اخر عليك بتغيير المعطيات في الكود اعلاه ،
والمعطيات تستطيع الحصول عليها من اداة Live http header
وقد شرح ذلك بالتفصيل في المقالة
المشاركات : 73
المواضيع 11
الإنتساب : Jul 2014
السمعة :
0
الشكر: 0
تم شكره 3 مرات في 2 مشاركات
المشاركات : 164
المواضيع 0
الإنتساب : Aug 2013
السمعة :
1
الشكر: 0
تم شكره 36 مرات في 7 مشاركات
الشاكي لله كتب :
اممم
المشكلة ليست من السورس
المشكلة انك بتحتاج الى تطبيق الrequset لإستخراج المعلومات بواسطة live header وكتابة طلب
فلو اعطيتك السورس مابتستفيد لان بضل هناك شيئ ناقص في الموضوع
يعني بتقول هذا من وين جاب هذا الكلام وليش كتب جدي ؟؟!
وايضا من كل موقع لموقع تختلف المعطيات يعني لو عطيتك الطريقة على موقع gulfup
ورحت تجربها على 0xx0 مابتنفع
لازم تعطيها متغيرات اخرى عشان تقدر ترفع الى 0xx0
--
حبيبي هذي الامور انت لازم تتعلمها ماتصلح احد يعطيك الطريقة لأنها ستكون لشيئ واحد بس
انا فقط سأوفر لك الفئة المستعملة في الرفع لأي موقع محولة للفيجوال بيسك :
PHP كود :
'All Copyright to alshakiLLah 'vb4arb ''' <summary> ''' ارفع ملفاتك لمراكز الرفع ''' </summary> ''' <remarks></remarks> Public Class UploadStationPOST Public Shared Function PostToStations(ByVal PostURL As String, ByVal PostDataParameters As Dictionary(Of String, Object)) As String Dim boundary As String = "---------------------------" + DateTime.Now.Ticks.ToString("x") Dim boundaryBytes As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + vbCr & vbLf)
Dim request As Net.HttpWebRequest = DirectCast(Net.WebRequest.Create(PostURL), Net.HttpWebRequest) request.ContentType = Convert.ToString("multipart/form-data; boundary=") & boundary request.Method = "POST" request.KeepAlive = True request.Credentials = System.Net.CredentialCache.DefaultCredentials
If PostDataParameters IsNot Nothing AndAlso PostDataParameters.Count > 0 Then
Using requestStream As IO.Stream = request.GetRequestStream()
For Each pair As KeyValuePair(Of String, Object) In PostDataParameters requestStream.Write(boundaryBytes, 0, boundaryBytes.Length) If TypeOf pair.Value Is FileDisposition Then Dim file__1 As FileDisposition = DirectCast(pair.Value, FileDisposition) Dim header As String = (Convert.ToString((Convert.ToString("Content-Disposition: form-data; name=""" + pair.Key + """; filename=""") & file__1.Name) + """" & vbCr & vbLf & "Content-Type: ") & file__1.ContentType) + vbCr & vbLf & vbCr & vbLf Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(header) 'كتابة معلومات الملف requestStream.Write(bytes, 0, bytes.Length)
Dim buffer As Byte() = New Byte(0) {} 'تجهيز المصفوفة Dim bytesRead As Integer ' كتابة بايتات الملف Using fileStream As IO.FileStream = IO.File.OpenRead(file__1.FilePath) While (InlineAssignHelper(bytesRead, fileStream.Read(buffer, 0, buffer.Length))) <> 0 requestStream.Write(buffer, 0, bytesRead) End While fileStream.Close() End Using Else 'البارمترات الاخرى غير بارمتار فايلس Dim data As String = "Content-Disposition: form-data; name=""" + pair.Key + """" & vbCr & vbLf & vbCr & vbLf + pair.Value Dim bytes As Byte() = System.Text.Encoding.UTF8.GetBytes(data) requestStream.Write(bytes, 0, bytes.Length) End If Next Dim trailer As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr & vbLf & "--") & boundary) + "--" & vbCr & vbLf) requestStream.Write(trailer, 0, trailer.Length) requestStream.Close() End Using End If
'الرد Using response As Net.WebResponse = request.GetResponse() Using responseStream As IO.Stream = response.GetResponseStream() Using reader As New IO.StreamReader(responseStream, System.Text.Encoding.UTF8) Return reader.ReadToEnd() End Using End Using End Using End Function
Public Class FileDisposition Public Property Name() As String Get Return m_Name End Get Set(ByVal value As String) m_Name = Value End Set End Property Private m_Name As String
Public Property ContentType() As String Get Return m_ContentType End Get Set(ByVal value As String) m_ContentType = Value End Set End Property Private m_ContentType As String
Public Property FilePath() As String Get Return m_FilePath End Get Set(ByVal value As String) m_FilePath = Value End Set End Property Private m_FilePath As String End Class Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T target = value Return value End Function
End Class
اما طريقة الاستخدام (لموقع IraqUp فقط ولاتصلح لغيره)
PHP كود :
Dim postURL As String = "http://www.iraqup.com/index2.php" 'ResultButton.Enabled = false; Dim ext As String = System.IO.Path.GetExtension("Ahmed.jpg").ToLower() ext = ext.Remove(0, 1) If ext = "jpg" Then ext = "jpeg" End If 'on internet jpg is named jpeg Dim para As New Dictionary(Of String, Object)() 'para
'اسم الصورة 'صيغة الصورة 'مكان الصورة para.Add("userfile", New UploadStationPOST.FileDisposition() With { _ .Name = "ali.png", _ .ContentType = "image/png", _ .FilePath = "c://ali.png" _ })
'post Dim _result = UploadStationPOST.PostToStations(postURL, para)
اذا كنت تريد الرفع لموقع اخر عليك بتغيير المعطيات في الكود اعلاه ،
والمعطيات تستطيع الحصول عليها من اداة Live http header
وقد شرح ذلك بالتفصيل في المقالة
ما شاء الله عليك، أنا استفدت منك يمكن اكثر من السائل.
|