كيف أصنع برنامج رفع ملفات لسرفر - elta - 29-08-13
كيف أصنع برنامج رفع ملفات لسرفر مثل 0zz0
gulfup...
كيف أصنع برنامج رفع ملفات لسرفر - الشاكي لله - 29-08-13
قمت بتوضيح ذلك بالكامل في مقالتي
[سلسلة التعامل مع الويب] - ارسال الطلبات HttpWebRequset
^ هناك جزئية كاملة تتحدث عن المطلوب (في المشاركة الثالثة)
لازلت اقول ياجماعة
اي خدمة تريد الحصول عليها من اي موقع استعمل الطلبااات (WEB REQUSET)
كيف أصنع برنامج رفع ملفات لسرفر - elta - 29-08-13
لكن أحتاج طرقة بال vb.net
كيف أصنع برنامج رفع ملفات لسرفر - الشاكي لله - 29-08-13
elta كتب :لكن أحتاج طرقة بال vb.net
وله يهمك
استطيع كتابة الكلاس من جديد بالفيجوال بيسك
لكن المشكلة هل ستستطيع استخدام الكلاس ؟
لانك لازم تجيب بعض المعلومات من اداة Live http header
كيف أصنع برنامج رفع ملفات لسرفر - elta - 29-08-13
لا + لو يمكنك إعطائي سورس
لأتعلم منه
كيف أصنع برنامج رفع ملفات لسرفر - الشاكي لله - 29-08-13
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
وقد شرح ذلك بالتفصيل في المقالة
كيف أصنع برنامج رفع ملفات لسرفر - elta - 29-08-13
شكرا أخي على الشرح
كيف أصنع برنامج رفع ملفات لسرفر - MSDOS - 29-08-13
الشاكي لله كتب :
اممم
المشكلة ليست من السورس
المشكلة انك بتحتاج الى تطبيق ال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
وقد شرح ذلك بالتفصيل في المقالة
ما شاء الله عليك، أنا استفدت منك يمكن اكثر من السائل.
|