تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف أصنع برنامج رفع ملفات لسرفر
#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
وقد شرح ذلك بالتفصيل في المقالة

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


الردود في هذا الموضوع
كيف أصنع برنامج رفع ملفات لسرفر - بواسطة MSDOS - 29-08-13, 05:29 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
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 588 27-04-25, 06:02 PM
آخر رد: princelovelorn
Lightbulb [مشروع] مطلوب برنامج نظام صيدليه بالفيجوال بيسك 2010 May-5 13 10,790 07-02-25, 07:55 PM
آخر رد: الورد2
  طريقة جلب نوع ملفات معينة heem1986 3 485 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 634 25-10-24, 01:57 PM
آخر رد: F.H.M

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


يقوم بقرائة الموضوع: