[COLOR="#000000"]
[b]سابعا :- رفع الملفات لمراكز الرفع
[COLOR="#800000"]
في هذا الجزء راح نتكلم عن طريقة رفع ملف الى مراكز الرفع
حيث ان بيانات الطلب معقدة وتتطلب طريقة خاصة للتعامل
مارح اشرح كل جملة في هذا الجزء كما كنت افعل سابقا
بسبب ضيق الوقت + اعتقد صرتوا محترفين
+ يجب عليي وضع المقالة القادمة اليوم
[/COLOR]
--
نبدأ ببركة الله
[COLOR="#000080"]كما قلنا نريد أن نرفع ملف الى مركز رفع
وليكن الملف عبارة عن صورة
الامثلة راح تكون على موقعين
الموقع الاول هو Iraqup لرفع الصور
ندخل عليه ونختار صورة .
- وقبل لاترفع ، لاتنسى تشغل قنص الطلبات في أداة Live http header لنتمكن من الحصول على الطلب[/COLOR]
-----
[COLOR="#000000"]بعد الرفع :
كما ترى الPost Data معقدة وليست كابقية الداتا الي تعامنا معاها سابقا
بالاضافة الى وجود -----------------------------176483200027146 ،
وهذا رقم يتغير في كل مرة ترفع فيها وماتقدر تخلي رقم عشوائي
لهذا قمت بعمل جزء خاص يتكلم عن الرفع للمراكز[/COLOR]
--
[COLOR="#8B4513"]
الفئة الذهبية لرفع الملفات للمراكز :[/COLOR]
الان لكي نرفع ملف نحتاج لبيانات الطلب مرة اخرى
[COLOR="#FF0000"]
في النهاية الكود الكامل لرفع صورة لموقع iraqUp هو هذا[/COLOR]
[COLOR="#4B0082"]سيتم حفظ محتوى الرد في المتغير result وهو عبارة عن صفحة الصورة بعد ماانرفعت
البارمترات
Name : اسم الصورة
ContentType : صيغة الصورة
FilePath : مسار الصورة على جهازك[/COLOR]
صورة :
--
سنحاول الان الرفع على موقع اخر
وهو http://www.0zz0.com
ارفع ملف وشوف تنسيق بيانات الطلب
هناك 3 برامترات ، عكس الموقع السابق كان في برامتار واحد بس واسمه [COLOR="#FF0000"]userfile
اما هنا يوجد 3
فسنتظطر الى زيادة القاموس لنتمكن من الرفع له[/COLOR]
لاحظ قمنا بزيادة
[COLOR="#006400"]
لأن في موقع iraqup كان يوجد Parameter واحد بس !!
اما في موفع العملاق يوجد Parameter ثلاثة[/COLOR]
لاحظ ايضا قمنا بتغير المفتاح الثالث من userfile الى file2up[]
---
---
المثال في المرفقات
---
---
---
{يتبع الجزء الثامن} >>>
[/COLOR]
[/b]
[b]سابعا :- رفع الملفات لمراكز الرفع
[COLOR="#800000"]
في هذا الجزء راح نتكلم عن طريقة رفع ملف الى مراكز الرفع
حيث ان بيانات الطلب معقدة وتتطلب طريقة خاصة للتعامل
مارح اشرح كل جملة في هذا الجزء كما كنت افعل سابقا
بسبب ضيق الوقت + اعتقد صرتوا محترفين
+ يجب عليي وضع المقالة القادمة اليوم[/COLOR]
--
نبدأ ببركة الله
[COLOR="#000080"]كما قلنا نريد أن نرفع ملف الى مركز رفع
وليكن الملف عبارة عن صورة
الامثلة راح تكون على موقعين
الموقع الاول هو Iraqup لرفع الصور
ندخل عليه ونختار صورة .
- وقبل لاترفع ، لاتنسى تشغل قنص الطلبات في أداة Live http header لنتمكن من الحصول على الطلب[/COLOR]
-----
[COLOR="#000000"]بعد الرفع :
كما ترى الPost Data معقدة وليست كابقية الداتا الي تعامنا معاها سابقا
بالاضافة الى وجود -----------------------------176483200027146 ،
وهذا رقم يتغير في كل مرة ترفع فيها وماتقدر تخلي رقم عشوائي
لهذا قمت بعمل جزء خاص يتكلم عن الرفع للمراكز[/COLOR]
--
[COLOR="#8B4513"]
الفئة الذهبية لرفع الملفات للمراكز :[/COLOR]
PHP كود :
public class UploadStationPOST
{
//Copyright for ALshkiLLah
/// <summary>
/// Upload your data to upload stations.
/// </summary>
/// <param name="url">Post url</param>
/// <param name="parameters">Post data parameters</param>
/// <returns></returns>
public static string PostToStations(string PostURL, Dictionary<string, object> PostDataParameters)
{
string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
byte[] boundaryBytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(PostURL);
request.ContentType = "multipart/form-data; boundary=" + boundary;
request.Method = "POST";
request.KeepAlive = true;
request.Credentials = System.Net.CredentialCache.DefaultCredentials;
if (PostDataParameters != null && PostDataParameters.Count > 0)
{
using (Stream requestStream = request.GetRequestStream())
{
foreach (KeyValuePair<string, object> pair in PostDataParameters)
{
requestStream.Write(boundaryBytes, 0, boundaryBytes.Length);
if (pair.Value is FileDisposition)
{
FileDisposition file = (FileDisposition)pair.Value;
string header = "Content-Disposition: form-data; name=\"" + pair.Key + "\"; filename=\"" + file.Name + "\"\r\nContent-Type: " + file.ContentType + "\r\n\r\n";
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(header);
//كتابة معلومات الملف
requestStream.Write(bytes, 0, bytes.Length);
byte[] buffer = new byte[1]; //تجهيز المصفوفة
int bytesRead;
// كتابة بايتات الملف
using (FileStream fileStream = File.OpenRead(file.FilePath))
{
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, bytesRead);
}
fileStream.Close();
}
}
else
{
//البارمترات الاخرى غير بارمتار فايلس
string data = "Content-Disposition: form-data; name=\"" + pair.Key + "\"\r\n\r\n" + pair.Value;
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data);
requestStream.Write(bytes, 0, bytes.Length);
}
}
byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
requestStream.Write(trailer, 0, trailer.Length);
requestStream.Close();
}
}
//الرد
using (WebResponse response = request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream, Encoding.UTF8))
return reader.ReadToEnd();
}
}
}
public class FileDisposition
{
public string Name { get; set; }
public string ContentType { get; set; }
public string FilePath { get; set; }
}
}
الان لكي نرفع ملف نحتاج لبيانات الطلب مرة اخرى
[COLOR="#FF0000"]
في النهاية الكود الكامل لرفع صورة لموقع iraqUp هو هذا[/COLOR]
PHP كود :
string postURL = "http://www.iraqup.com/index2.php";
//ResultButton.Enabled = false;
string ext = System.IO.Path.GetExtension(textBox1.Text).ToLower();
ext = ext.Remove(0,1);
if (ext == "jpg"){ext="jpeg";} //on internet jpg is named jpeg
Dictionary<string, object> para = new Dictionary<string, object>();
//para
para.Add("userfile", new UploadStationPOST.FileDisposition()
{
Name = "ali.png", //اسم الصورة
ContentType = "image" + ext, //صيغة الصورة
FilePath = "c://ali.png" //مكان الصورة
});
//post
_result = UploadStationPOST.PostToStations(postURL, para);
[COLOR="#4B0082"]سيتم حفظ محتوى الرد في المتغير result وهو عبارة عن صفحة الصورة بعد ماانرفعت
البارمترات
Name : اسم الصورة
ContentType : صيغة الصورة
FilePath : مسار الصورة على جهازك[/COLOR]
صورة :
--
سنحاول الان الرفع على موقع اخر
وهو http://www.0zz0.com
ارفع ملف وشوف تنسيق بيانات الطلب
هناك 3 برامترات ، عكس الموقع السابق كان في برامتار واحد بس واسمه [COLOR="#FF0000"]userfile
اما هنا يوجد 3
فسنتظطر الى زيادة القاموس لنتمكن من الرفع له[/COLOR]
PHP كود :
string postURL = "http://www.0zz0.com/index.php";
//ResultButton.Enabled = false;
string ext = System.IO.Path.GetExtension(textBox1.Text).ToLower();
ext = ext.Remove(0,1);
if (ext == "jpg"){ext="jpeg";} //on internet jpg is named jpeg
Dictionary<string, object> para = new Dictionary<string, object>();
//para
para.Add("APC_UPLOAD_PROGRESS", "83738829");//new para
para.Add("upload", "ok");//new para
para.Add("file2up[]", new UploadStationPOST.FileDisposition()
{
Name = "ali.png", //اسم الصورة
ContentType = "image" + ext, //صيغة الصورة
FilePath = "c://ali.png" //مكان الصورة
});
//post
_result = UploadStationPOST.PostToStations(postURL, para);
لاحظ قمنا بزيادة
PHP كود :
para.Add("APC_UPLOAD_PROGRESS", "83738829");//new para
para.Add("upload", "ok");//new para
لأن في موقع iraqup كان يوجد Parameter واحد بس !!
اما في موفع العملاق يوجد Parameter ثلاثة[/COLOR]
لاحظ ايضا قمنا بتغير المفتاح الثالث من userfile الى file2up[]
---
---
المثال في المرفقات
---
---
---
{يتبع الجزء الثامن} >>>
[/COLOR]

