تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف أصنع برنامج رفع ملفات لسرفر
#1
كيف أصنع برنامج رفع ملفات لسرفر مثل 0zz0
gulfup...
الرد }}}
تم الشكر بواسطة:
#2
قمت بتوضيح ذلك بالكامل في مقالتي

[سلسلة التعامل مع الويب] - ارسال الطلبات HttpWebRequset

^ هناك جزئية كاملة تتحدث عن المطلوب (في المشاركة الثالثة)


لازلت اقول ياجماعة

اي خدمة تريد الحصول عليها من اي موقع استعمل الطلبااات (WEB REQUSET)
الرد }}}
تم الشكر بواسطة:
#3
لكن أحتاج طرقة بال vb.net
الرد }}}
تم الشكر بواسطة:
#4
elta كتب :لكن أحتاج طرقة بال vb.net

وله يهمك

استطيع كتابة الكلاس من جديد بالفيجوال بيسك

لكن المشكلة هل ستستطيع استخدام الكلاس ؟

لانك لازم تجيب بعض المعلومات من اداة Live http header
الرد }}}
تم الشكر بواسطة:
#5
لا + لو يمكنك إعطائي سورس
لأتعلم منه
الرد }}}
تم الشكر بواسطة:
#6
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 StringByVal PostDataParameters As Dictionary(Of StringObject)) 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 StringObjectIn PostDataParameters
                    requestStream
.Write(boundaryBytes0boundaryBytes.Length)
                    If 
TypeOf pair.Value Is FileDisposition Then
                        Dim file__1 
As FileDisposition DirectCast(pair.ValueFileDisposition)
                        
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(bytes0bytes.Length)
                    
End If
                
Next
                Dim trailer 
As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr vbLf "--") & boundary) + "--" vbCr vbLf)
                
requestStream.Write(trailer0trailer.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 StringObject)()
        
'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
وقد شرح ذلك بالتفصيل في المقالة
الرد }}}
تم الشكر بواسطة:
#7
شكرا أخي على الشرح
الرد }}}
تم الشكر بواسطة:
#8
الشاكي لله كتب :


اممم


المشكلة ليست من السورس

المشكلة انك بتحتاج الى تطبيق ال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 StringByVal PostDataParameters As Dictionary(Of StringObject)) 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 StringObjectIn PostDataParameters
                    requestStream
.Write(boundaryBytes0boundaryBytes.Length)
                    If 
TypeOf pair.Value Is FileDisposition Then
                        Dim file__1 
As FileDisposition DirectCast(pair.ValueFileDisposition)
                        
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(bytes0bytes.Length)
                    
End If
                
Next
                Dim trailer 
As Byte() = System.Text.Encoding.ASCII.GetBytes((Convert.ToString(vbCr vbLf "--") & boundary) + "--" vbCr vbLf)
                
requestStream.Write(trailer0trailer.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 StringObject)()
        
'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
وقد شرح ذلك بالتفصيل في المقالة

ما شاء الله عليك، أنا استفدت منك يمكن اكثر من السائل.
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Information [VB.NET] مطلوب سورس برنامج من سيربح المليون بدر إشتية 7 6,725 30-11-25, 07:22 AM
آخر رد: Mr_limo
  برنامج نظام محل مواد غذائية crazykinko 0 157 17-10-25, 12:27 AM
آخر رد: crazykinko
  جهاز ارسال رسائل SMS من خلال برنامج فيجوال بيسك جيولوجي مبتدئ 4 1,024 05-09-25, 12:37 PM
آخر رد: جيولوجي مبتدئ
  استفسار عن حامية برنامج ahmedramy 2 589 27-04-25, 06:02 PM
آخر رد: princelovelorn
Lightbulb [مشروع] مطلوب برنامج نظام صيدليه بالفيجوال بيسك 2010 May-5 13 10,792 07-02-25, 07:55 PM
آخر رد: الورد2
  طريقة جلب نوع ملفات معينة heem1986 3 486 31-12-24, 11:32 PM
آخر رد: aljzazy
  برنامج الفيجول استوديو 2010 لا يتجاوب مع التحديثات التي اجريها عليه في برمجة البرامج PeterGhattas082460 1 427 14-12-24, 01:16 AM
آخر رد: Taha Okla
  خطأ في برنامج بلغة البايثون ahlamalgomate2020 0 288 08-11-24, 11:31 PM
آخر رد: ahlamalgomate2020
  مساعدة فى حفظ مشروع برنامج الى ضيغة apk م / وليد تيتو 1 373 03-11-24, 05:27 PM
آخر رد: Taha Okla
  أريد كود عند الضغط على الصورة في PictureBox تفتح في برنامج الصور في الويندوز F.H.M 6 636 25-10-24, 01:57 PM
آخر رد: F.H.M

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم