با سلام و خسته نباشید
ببخشید من می خواستم ببینم چجوری می تونم یک فایل و به روش multipart/form-data آپلود کنم
:)
اگر ممکنه نمونه کدی بنویسید
با تشکر
Printable View
با سلام و خسته نباشید
ببخشید من می خواستم ببینم چجوری می تونم یک فایل و به روش multipart/form-data آپلود کنم
:)
اگر ممکنه نمونه کدی بنویسید
با تشکر
سلام
اول عنوان تاپیک تان برای گویایی بیشتر مطب ویرایش شد...
دوم آنکه در خصوص مشکلی که خصوصی مطرح کردید و با روش های غیر multipart با PHP داشتید، باید عرض کنم من PHP بلد نیستم ولی بطور حتم این زبان برنامه نویسی هم مشابه ASP.Net راه کارهایی جایگزینی برای آپلود یک فایل دارد و بهتر است دستور مناسب آن را پیدا کنید.
سوم کوتاه ترین کد شما برای POST یک یا چند فایل با نامی مشخص استفاده از اسمبلی System.Net.Http در dotNetFramework4.5 است:
(اسمبلی فوق را باید به reference های پروژه تان اضافه کنید)
موفق باشید.کد:using System;
using System.Net.Http;
using System.Threading.Tasks;
private async void btnUpload_Click(object sender, RoutedEventArgs e)
{
string url = "http://site.com/upload/123";
string filepath = @"D:\picture.jpg";
string postname = "file1";
using (var stream = new System.IO.FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read))
using (var client = new HttpClient())
using (var content = new MultipartFormDataContent("-----WebKitFormBoundary" + Guid.NewGuid().ToString("N")))
{
content.Add(new StreamContent(stream), postname, System.IO.Path.GetFileName(filepath));
var result = await client.PostAsync(url, content);
}
}
ببخشید من سی شارپ زیاد کار نکردم می شه کمکم کنید چجوری باید به وی بی دات نت تبدیلشون کنم؟
با تشکر...
سلام مجدد
کد:Imports System
Imports System.Net.Http
Imports System.Threading.Tasks
'...
Private Async Sub btnUpload_Click(sender As Object, e As RoutedEventArgs)
Dim url As String = "http://site.com/upload/123"
Dim filepath As String = "D:\picture.jpg"
Dim postname As String = "file1"
Using _
stream = New System.IO.FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read), _
client = New HttpClient(), _
content = New MultipartFormDataContent("-----WebKitFormBoundary" + Guid.NewGuid().ToString("N"))
content.Add(New StreamContent(stream), postname, System.IO.Path.GetFileName(filepath))
Dim result = Await client.PostAsync(url, content)
End Using
End Sub
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]نقل قول:
چجوری باید به وی بی دات نت تبدیلشون کنم؟
داداش این تیکه کد خطا داره
Imports System.Net.Http
:n15:
وقتی که میزنم زیرش و سبز می کنه و یک فلش قرمز باز می کنه که روش کلیک می کنه می گه منظور شما این بوده؟؟؟
Imports System.Net.WebRequestMethods.Http
این هم عکسی از نمای خطا:
کد:
http://www.uplooder.net/img/image/41/0dd1760909ab202400faf4df3caccd67/123.png
سلام
تابع btnUpload_Click میتواند هر چیزی باشد، فرض کردم پروؤه شما WPF ای است و میخواهید با کلیک دکمه ای این کار انجام شود...
حالاکه پروژه تان WinForm است باید تابع معادل کیک دکمه WinForm را جایگزین کنید (دیگر RoutedEventArgs نخواهید داشت و شاید WithEvent هم اضافه شود)
برای بقیه خطاها هم همانطورکه در پست اولم گفتم ...
پروژه تان باید dotNetFramework4.5 باشد و اسمبلی System.Net.Http را باید به reference های پروژه تان اضافه کنید.(Project->Add Reference)
پروژه ای که دارم انجام می دم wpf هستش اون ویندوز فرم و فقط برای تست قطعه کد طراحیش کردم
یک سوال دیگر...
اگر بخواهم در کنار این که عکس می فرستم متد های دیگری بفرستم مثل token باید اونجای content.add:
نام دیگر متغیرهای ارسالی رو ذکر کنم؟؟؟
یا این فقط برای ارسال یک متغیر هستش؟
سلام
این هم فیلم کامل مشکل که کار نمی کنه همراه با نمونه کد های پی اچ پی و تست اون با زمپ و مرورگر از لحاظ صحت محتوی
---
اما این قطعه کد کار نمی کنه ... می تونید روی این فایل هایی که نوشتم امتحان کنید
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
:n28:
سلام
1) برای ارسال سایر مقادیر چندین راه وجود دارد که بعنوان نمونه میتوانید از StreamContent استفاده کنید.
2) برای نمایش نتیجه روی مانیتور در WPF نیاز به تابع Dispatcher.BeginInvoke دارید ولی بدلیل استفاده از شیوه جدید چند ریسمانی Async,Await در حال حاضر خیلی راحت و بدون تابع فوق هم قابل انجام است.
3) در خصوص مشکل با آپلود در PHP ، در تصاویری که قرار داده بودید متوجه شدم که از ContentType استفاده کرده اید، مطمئن نیستم ولی شاید مشکل از عدم پرشدن این مقدار باشد که میتوانید با کلاس MediaTypeHeaderValue انجامش دهید.
4) یک بلوک Try-Catch هم جهت پیش بینی خطاهای ممکن برایتان اضافه کردم
تمام موارد فوق نتیجه اش در کد زیر قابل مشاهده است:
در نهایت کدفوق با ASP.Net امتحان کردم در صورت ادامه مشکل تحت PHP کد PHP تان را خط به خط trace کنید و ببینید چه مقادیری پر نشده اند و چه فرض ها و شرایطی خلاف حالت عادی رخ میدهند ...کد:Imports System
Imports System.Net.Http
Imports System.Threading.Tasks
Public Class MainWindow
Private Async Sub btnUpload_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
Try
Dim url As String = "http://site.com/upload/?post_name_0=value0"
Dim filepath As String = "D:\picture.jpg"
Dim postname As String = "file1"
Using _
stream = New System.IO.FileStream(filepath, System.IO.FileMode.Open, System.IO.FileAccess.Read), _
client = New HttpClient(), _
content = New MultipartFormDataContent("-----WebKitFormBoundary" + Guid.NewGuid().ToString("N"))
content.Add(New StringContent("value1"), "post_name_1")
content.Add(New StringContent("value2"), "post_name_2")
content.Add(New StringContent("value3"), "post_name_3")
Dim filecontent = New StreamContent(stream)
filecontent.Headers.ContentType = New Headers.MediaTypeHeaderValue("image/jpeg")
content.Add(filecontent, postname, System.IO.Path.GetFileName(filepath))
Dim result = Await client.PostAsync(url, content)
Me.txtResult.Text = result.StatusCode.ToString()
'Await Me.Dispatcher.BeginInvoke(New Action(Of HttpResponseMessage)(AddressOf Me.OnResponse), result)
End Using
Catch ex As Exception
Me.txtResult.Text = "ERROR! " + ex.Message
'Me.Dispatcher.BeginInvoke(New Action(Of Exception)(AddressOf Me.OnError), ex)
End Try
End Sub
'Private Sub OnResponse(ByVal res As HttpResponseMessage)
' Me.txtResult.Text = res.StatusCode.ToString()
'End Sub
'Private Sub OnError(ByVal res As Exception)
' Me.txtResult.Text = "ERROR! " + res.Message
'End Sub
End Class
موفق باشید.
وااااااای داداش لایک داری
عاشقتم داداش جواب داد:n12::n16::n16::n16:
:n20::n20::n20:
امشب همه پیتزا مهمون من
....
دوستان عجله نکنید به همتون پیتزا میره سهکد:
http://www.9595.ir/images/pizza%20morghh.jpg
:n20::n16::n17::n19::n16:
این هم عشق و علاقه خودم به استاد محترم
H2_
که واقعاً ما را شرمنده نمودند
:n11: