PDA

نسخه کامل مشاهده نسخه کامل : آپلود فایل تحت HTTP و multipart/form-data



H.E.R.O.E.S
07-11-2014, 21:19
با سلام و خسته نباشید
ببخشید من می خواستم ببینم چجوری می تونم یک فایل و به روش multipart/form-data آپلود کنم
:)
اگر ممکنه نمونه کدی بنویسید
با تشکر

_H2_
10-11-2014, 02:38
سلام
اول عنوان تاپیک تان برای گویایی بیشتر مطب ویرایش شد...

دوم آنکه در خصوص مشکلی که خصوصی مطرح کردید و با روش های غیر multipart با PHP داشتید، باید عرض کنم من PHP بلد نیستم ولی بطور حتم این زبان برنامه نویسی هم مشابه ASP.Net راه کارهایی جایگزینی برای آپلود یک فایل دارد و بهتر است دستور مناسب آن را پیدا کنید.


سوم کوتاه ترین کد شما برای POST یک یا چند فایل با نامی مشخص استفاده از اسمبلی System.Net.Http در dotNetFramework4.5 است:
(اسمبلی فوق را باید به reference های پروژه تان اضافه کنید)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.

H.E.R.O.E.S
10-11-2014, 12:55
ببخشید من سی شارپ زیاد کار نکردم می شه کمکم کنید چجوری باید به وی بی دات نت تبدیلشون کنم؟
با تشکر...

_H2_
10-11-2014, 22:41
سلام مجدد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


چجوری باید به وی بی دات نت تبدیلشون کنم؟
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

H.E.R.O.E.S
10-11-2014, 23:32
داداش این تیکه کد خطا داره

Imports System.Net.Http
:n15:
وقتی که میزنم زیرش و سبز می کنه و یک فلش قرمز باز می کنه که روش کلیک می کنه می گه منظور شما این بوده؟؟؟
Imports System.Net.WebRequestMethods.Http


این هم عکسی از نمای خطا:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
11-11-2014, 01:31
سلام
تابع btnUpload_Click میتواند هر چیزی باشد، فرض کردم پروؤه شما WPF ای است و میخواهید با کلیک دکمه ای این کار انجام شود...
حالاکه پروژه تان WinForm است باید تابع معادل کیک دکمه WinForm را جایگزین کنید (دیگر RoutedEventArgs نخواهید داشت و شاید WithEvent هم اضافه شود)


برای بقیه خطاها هم همانطورکه در پست اولم گفتم ...
پروژه تان باید dotNetFramework4.5 باشد و اسمبلی System.Net.Http را باید به reference های پروژه تان اضافه کنید.(Project->Add Reference)

H.E.R.O.E.S
11-11-2014, 19:39
پروژه ای که دارم انجام می دم wpf هستش اون ویندوز فرم و فقط برای تست قطعه کد طراحیش کردم
یک سوال دیگر...
اگر بخواهم در کنار این که عکس می فرستم متد های دیگری بفرستم مثل token باید اونجای content.add:
نام دیگر متغیرهای ارسالی رو ذکر کنم؟؟؟
یا این فقط برای ارسال یک متغیر هستش؟

H.E.R.O.E.S
11-11-2014, 21:23
سلام
این هم فیلم کامل مشکل که کار نمی کنه همراه با نمونه کد های پی اچ پی و تست اون با زمپ و مرورگر از لحاظ صحت محتوی
---
اما این قطعه کد کار نمی کنه ... می تونید روی این فایل هایی که نوشتم امتحان کنید

Applicaion_And_Movie.zip ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
:n28:

_H2_
14-11-2014, 20:48
سلام
1) برای ارسال سایر مقادیر چندین راه وجود دارد که بعنوان نمونه میتوانید از StreamContent استفاده کنید.
2) برای نمایش نتیجه روی مانیتور در WPF نیاز به تابع Dispatcher.BeginInvoke دارید ولی بدلیل استفاده از شیوه جدید چند ریسمانی Async,Await در حال حاضر خیلی راحت و بدون تابع فوق هم قابل انجام است.
3) در خصوص مشکل با آپلود در PHP ، در تصاویری که قرار داده بودید متوجه شدم که از ContentType استفاده کرده اید، مطمئن نیستم ولی شاید مشکل از عدم پرشدن این مقدار باشد که میتوانید با کلاس MediaTypeHeaderValue انجامش دهید.
4) یک بلوک Try-Catch هم جهت پیش بینی خطاهای ممکن برایتان اضافه کردم

تمام موارد فوق نتیجه اش در کد زیر قابل مشاهده است:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در نهایت کدفوق با ASP.Net امتحان کردم در صورت ادامه مشکل تحت PHP کد PHP تان را خط به خط trace کنید و ببینید چه مقادیری پر نشده اند و چه فرض ها و شرایطی خلاف حالت عادی رخ میدهند ...
موفق باشید.

H.E.R.O.E.S
16-11-2014, 20:44
وااااااای داداش لایک داری
عاشقتم داداش جواب داد:n12::n16::n16::n16:
:n20::n20::n20:
امشب همه پیتزا مهمون من
....

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوستان عجله نکنید به همتون پیتزا میره سه
:n20::n16::n17::n19::n16:
این هم عشق و علاقه خودم به استاد محترم
H2_

که واقعاً ما را شرمنده نمودند
:n11:

_H2_
10-01-2015, 23:23
سلام
مطلبی را که بطور خصوصی در مورد دریافت html یا xml و... نتیجه آپلود مطرح کرده بودید، چون مرتبط با همین تاپیک است برای استفاده عموم، همینجا پاسخ خواهم داد.
کد زیر کل response را که سرور پس از آپلود فرستاده (همان چیزی که اگر در مرورگر باشد مشاهده خواهد شد) نشان میدهد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید