منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : التعامل مع مراكز رفع او تحميل الصور
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
(17-11-18, 03:00 PM)elgokr كتب : [ -> ]
الشكر لله والحمد لله
ونحمد الله على كل حال

تحياتى لك
وتمنياتى لك التوفيق

اخي جوكر انا طورت الكود واستبدلت خاصية اختيار الملف او الصوره المراد رفعها عن طريق open file dialog الى السحب والافلات

ونجح كود السحب والافلام وضهر المسار في textbox ولاكن كيف نستبدل الاوبن فايل ديلوق ب السحب والافلات

حاولت استبدل الوبين فايل ديلوق عن طريق الكود التالي
كود :
               dlgOpen.FileName = txtFile.Text

ولم ينجح لان وضيفة الاوبين تحديد المراد رفعه
(09-11-18, 10:25 PM)dasktop كتب : [ -> ]مرحبا

هل يوجد طريقة لتعامل مع مراكز رفع ملفات مثل تحميل صوره الى مركز رفع وجلب الرابط

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

مرحبا اخي
تفضل جرب هذا الكود
كود :
  Public Sub New()
       InitializeComponent()
       Control.CheckForIllegalCrossThreadCalls = False
   End Sub
   Dim ClientId As String = "66665db7b4b0608"
   Dim Dictionner As New Dictionary(Of WebClient, ListViewItem)

   Private Sub Completed(sender As Object, e As UploadValuesCompletedEventArgs)
       Dim Result As String = (New UTF8Encoding).GetString(e.Result)
       If e.Cancelled = True Then
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.RoyalBlue
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = "Cancelled"
       ElseIf e.Error IsNot Nothing Then
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.Red
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = "Error"
       ElseIf e.Result IsNot Nothing Then
           Dim K As Match = Regex.Match(Result, ",""link"":""(.*?)""}")
           lvfiles.Items(Dictionner.Item(sender).Index).ToolTipText = K.Groups(1).Value.Replace("\", "")
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.Green
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = "Sucessfully, Uploaded"
       End If

   End Sub
   Private Sub Progress(sender As Object, e As UploadProgressChangedEventArgs)
       On Error Resume Next
       lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.Blue
       lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = e.ProgressPercentage & "%"
   End Sub

   Private Sub lvfiles_DoubleClick(sender As Object, e As EventArgs) Handles lvfiles.DoubleClick
       If Not lvfiles.FocusedItem.SubItems(1).ForeColor = Color.Green Then : Exit Sub : End If
       Clipboard.SetText(lvfiles.FocusedItem.ToolTipText, TextDataFormat.Text)
       MsgBox("Link Copied", MsgBoxStyle.Information)
   End Sub

   Private Sub lvfiles_DragDrop(sender As Object, e As DragEventArgs) Handles lvfiles.DragDrop
       Try
           Dim FilePath As String = e.Data.GetData(DataFormats.FileDrop)(0)

           Dim NIcon As Icon = Icon.ExtractAssociatedIcon(FilePath)
           ImageList1.Images.Add(NIcon)
           Dim itm As New ListViewItem
           itm.UseItemStyleForSubItems = False
           itm.Text = Path.GetFileName(FilePath)
           itm.SubItems.Add("Uploading...").ForeColor = ColorTranslator.FromHtml("#3b4451")
           itm.ImageIndex = ImageList1.Images.Count - 1
           lvfiles.Items.Add(itm)

           Dim w As New WebClient()
           w.Headers.Add("Authorization", "Client-ID " & ClientId)
           AddHandler w.UploadValuesCompleted, AddressOf Completed
           AddHandler w.UploadProgressChanged, AddressOf Progress
           Dim Keys As New System.Collections.Specialized.NameValueCollection
           Keys.Add("image", Convert.ToBase64String(File.ReadAllBytes(FilePath)))
           w.UploadValuesAsync(New Uri("https://api.imgur.com/3/image"), Keys)
           Dictionner.Add(w, itm)
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub

   Private Sub lvfiles_DragEnter(sender As Object, e As DragEventArgs) Handles lvfiles.DragEnter
       If e.Data.GetDataPresent(DataFormats.FileDrop) Then
           e.Effect = DragDropEffects.All
       End If
   End Sub
(19-11-18, 01:03 AM)trakktour كتب : [ -> ]
(09-11-18, 10:25 PM)dasktop كتب : [ -> ]مرحبا

هل يوجد طريقة لتعامل مع مراكز رفع ملفات مثل تحميل صوره الى مركز رفع وجلب الرابط

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

مرحبا اخي
تفضل جرب هذا الكود
كود :
  Public Sub New()
       InitializeComponent()
       Control.CheckForIllegalCrossThreadCalls = False
   End Sub
   Dim ClientId As String = "66665db7b4b0608"
   Dim Dictionner As New Dictionary(Of WebClient, ListViewItem)

   Private Sub Completed(sender As Object, e As UploadValuesCompletedEventArgs)
       Dim Result As String = (New UTF8Encoding).GetString(e.Result)
       If e.Cancelled = True Then
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.RoyalBlue
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = "Cancelled"
       ElseIf e.Error IsNot Nothing Then
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.Red
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = "Error"
       ElseIf e.Result IsNot Nothing Then
           Dim K As Match = Regex.Match(Result, ",""link"":""(.*?)""}")
           lvfiles.Items(Dictionner.Item(sender).Index).ToolTipText = K.Groups(1).Value.Replace("\", "")
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.Green
           lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = "Sucessfully, Uploaded"
       End If

   End Sub
   Private Sub Progress(sender As Object, e As UploadProgressChangedEventArgs)
       On Error Resume Next
       lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).ForeColor = Color.Blue
       lvfiles.Items(Dictionner.Item(sender).Index).SubItems(1).Text = e.ProgressPercentage & "%"
   End Sub

   Private Sub lvfiles_DoubleClick(sender As Object, e As EventArgs) Handles lvfiles.DoubleClick
       If Not lvfiles.FocusedItem.SubItems(1).ForeColor = Color.Green Then : Exit Sub : End If
       Clipboard.SetText(lvfiles.FocusedItem.ToolTipText, TextDataFormat.Text)
       MsgBox("Link Copied", MsgBoxStyle.Information)
   End Sub

   Private Sub lvfiles_DragDrop(sender As Object, e As DragEventArgs) Handles lvfiles.DragDrop
       Try
           Dim FilePath As String = e.Data.GetData(DataFormats.FileDrop)(0)

           Dim NIcon As Icon = Icon.ExtractAssociatedIcon(FilePath)
           ImageList1.Images.Add(NIcon)
           Dim itm As New ListViewItem
           itm.UseItemStyleForSubItems = False
           itm.Text = Path.GetFileName(FilePath)
           itm.SubItems.Add("Uploading...").ForeColor = ColorTranslator.FromHtml("#3b4451")
           itm.ImageIndex = ImageList1.Images.Count - 1
           lvfiles.Items.Add(itm)

           Dim w As New WebClient()
           w.Headers.Add("Authorization", "Client-ID " & ClientId)
           AddHandler w.UploadValuesCompleted, AddressOf Completed
           AddHandler w.UploadProgressChanged, AddressOf Progress
           Dim Keys As New System.Collections.Specialized.NameValueCollection
           Keys.Add("image", Convert.ToBase64String(File.ReadAllBytes(FilePath)))
           w.UploadValuesAsync(New Uri("https://api.imgur.com/3/image"), Keys)
           Dictionner.Add(w, itm)
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub

   Private Sub lvfiles_DragEnter(sender As Object, e As DragEventArgs) Handles lvfiles.DragEnter
       If e.Data.GetDataPresent(DataFormats.FileDrop) Then
           e.Effect = DragDropEffects.All
       End If
   End Sub


اخي انا عندي جميع الاكواد جاهزه فقط ولاكن اريد ان استبدل طريقة اختيار الملف يعني مثلا ساارفع صوره الى موقع بضغط على زر واحدد الملف

انا اريد ان بدال من الضغط على زر وتحديد الملف فقط اسحب الملف واضعه على الزر فقط لدي كود السحب ولاكن كيف استبدل كود open file dialog بكون السحب
ارفق المشروع لديك
بعد اتمامك لاضافة ما تم اضافته فى المشروع

حتى اقوم بتعديل اللازم واختبار سينجح الامر ام لا
لان الامر كله فى الكود بالاعلى ليس اداء OpenFileDialog
انما هو عبارة عن تنفيذ كلك على ID فى كود المتصفح ليقوم بتنفيذ ضغطة على Input
موجود فى موقع مركز الرفع

تحياتى لك
وتمنياتى لك التوفيق
https://www.upload.ee/files/9208500/ttt.rar.html

تفضل اخي مع كود السحب في الزر
لاتمام عمل المطلوب
تعال عند Sub الخاص بالسطر التالى
كود :
   Private Sub ShowFileInfo()

ستجد بداخله السطر الاتى
كود :
       TextBox1.Text = MyFile.FullName

فقط كل ما عليك فعله اسفل منه مباشر
كود :
       For Each OneElement In wb.Document.GetElementsByTagName("input")
           If OneElement.GetAttribute("type") = "file" Then
               If OneElement.GetAttribute("name") = "upfile_0" Then
                   Dim tr As New System.Threading.Thread(AddressOf SendK)
                   tr.Start()
                   OneElement.InvokeMember("click")
                   tr.Abort()
               End If
               Exit For
           End If
       Next


الان كل ما عليك اضافة الـ Sub التالى فى اى مكان
كود :
   Private Sub SendK()
       SendKeys.SendWait(MyFile.FullName) 'the file address path
       SendKeys.SendWait(Chr(13))
   End Sub

الان بمجرد سحب الملف واضافته فى الفورم 
سيقوم تلقائياً بفتح OpenFileDialog الخاص بالمتصفح 
ووضع المسار تلقائي دون تدخل منك من فم اخفاء OpenFileDialog

عند الانتهاء يمكنك الضغط على زر رفع الملف
تذكر يجب عليك تعديل التالى فى الحدث Button1_Click

اجعله على هذا الشكل لانك قمت بتغييره وبمجرد الاستخدام سيسبب معك مشكلة
كود :
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       wb.Document.GetElementById("upfile_0").InvokeMember("Click")
   End Sub

او يمكنك حذف الحدث تماماً بما انك ستعتمد على السحب
واتمنى ما قمت بطرحه الانسب لك مع عملية السحب لان هذه الطريقة هى الانسب مع حالة الموقع المستخدم

تحياتى لك
وتمنياتى لك التوفيق
الصفحات : 1 2