|
|
|
อยากรู้วิธี เชื่อมต่อ FTP เพื่อ Upload ของ Windows Mobile หรือ Windows CE (VS2008) |
|
|
|
|
|
|
|
บอกหลักการน่ะครับ คือปลงให้เป็น Binary แล้วส่งไปยัง Web Server ด้วย WebClient โดยฝั่ง Web Server จะรับค่า Binary แล้วก็เขียนเป็นไฟล์เหมือนเดิมครับ
Code (C#)
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
namespace ClassLibrary1
{
public class Class1
{
public string UploadFilesToRemoteUrl(string url, string[] files, string logpath)
{
long length = 0;
string boundary = "----------------------------" +
DateTime.Now.Ticks.ToString("x");
HttpWebRequest httpWebRequest2 = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest2.ContentType = "multipart/form-data; boundary=" + boundary;
httpWebRequest2.Method = "POST";
httpWebRequest2.KeepAlive = true;
httpWebRequest2.Credentials =
System.Net.CredentialCache.DefaultCredentials;
Stream memStream = new System.IO.MemoryStream();
byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");
memStream.Write(boundarybytes,0,boundarybytes.Length);
length += boundarybytes.Length;
string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n Content-Type: \"application/octet-stream\"\r\n\r\n";
for(int i=0;i<files.Length;i++)
{
string header = string.Format(headerTemplate,i,files[i]);
byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header);
memStream.Write(headerbytes,0,headerbytes.Length);
length += headerbytes.Length;
FileStream fileStream = new FileStream(files[i], FileMode.Open,
FileAccess.Read);
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ( (bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0 )
{
memStream.Write(buffer, 0, bytesRead);
length += bytesRead;
}
memStream.Write(boundarybytes,0,boundarybytes.Length);
length += boundarybytes.Length;
fileStream.Close();
}
httpWebRequest2.ContentLength = memStream.Length;
Stream requestStream = httpWebRequest2.GetRequestStream();
memStream.Position = 0;
byte[] tempBuffer = new byte[memStream.Length];
memStream.Read(tempBuffer,0,tempBuffer.Length);
memStream.Close();
requestStream.Write(tempBuffer,0,tempBuffer.Length );
requestStream.Close();
WebResponse webResponse2 = httpWebRequest2.GetResponse();
Stream stream2 = webResponse2.GetResponseStream();
StreamReader reader2 = new StreamReader(stream2);
//MessageBox.Show(reader2.ReadToEnd());
return reader2.ReadToEnd();
webResponse2.Close();
httpWebRequest2 = null;
webResponse2 = null;
}
}
}
Code (PHP)
<?php
if ($_FILES["file0"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
for($i=0;$i<count($_FILES);$i++)
{
echo "Upload: " . $_FILES[$i]["name"] . "<br />";
echo "Type: " . $_FILES[$i]["type"] . "<br />";
echo "Size: " . ($_FILES[$i]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES[$i]["tmp_name"] . "<br />";
//if (file_exists("upload/" . $_FILES["file"]["name"]))
// {
//echo $_FILES["file"]["name"] . " already exists. ";
//}
//else
// {
move_uploaded_file($_FILES[$i]["tmp_name"],"upload/". $_FILES[$i]["name"]);
echo "Stored in: " . "upload/". $_FILES[$i]["name"];
// }
}
}
?>
ตัวอย่าง
http://bytes.com/topic/c-sharp/answers/268661-how-upload-file-via-c-code
|
|
|
|
|
Date :
2015-08-06 13:09:45 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ ผมขอลองศึกษาก่อนนะครับ
|
|
|
|
|
Date :
2015-08-06 13:24:25 |
By :
golfgee12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันจะคล้าย ๆ กับตัวนี้ครับ
Windows Phone Upload Send file to Server (Web Server)
|
|
|
|
|
Date :
2015-08-06 13:41:00 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กรณีของผมเซิฟเวอร์ไม่ใช่อยู่บนเวปแต่เป็นเซิฟเวอร์ของบริษัท เวลาเปิดจากคอมจะเห็นเป็น drive นึงเลยครับ
แบบ fileserver O: แบบนี้ครับ
แบบนี้ผมควรใช้วิธีไหนครับ VB.NET
|
|
|
|
|
Date :
2015-08-06 14:08:32 |
By :
golfgee12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Windows CE มันเชื่อมต่อ Network Drive ได้หรือเปล่าครับ ?
|
|
|
|
|
Date :
2015-08-06 14:12:30 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเชื่อมต่อไดร์ตรงๆแบบคอม ที่ให้มีไดรฟ์โผล่ขึ้นมาใช้งานได้เลย อันนี้ไม่แน่ใจเหมือนกันครับ
แต่มันเชื่อมไปที่ database ได้ และใน window ce Handheldตัวนี้ ผมก็เคยโหลดโปรแกรมเชื่อมต่อ ftp มาลองใช้งานได้
แสดงว่ามันน่าจะเชื่อมต่อกับเซิฟเวอร์ ได้นะครับ เพียงแต่ผมไม่รู้วิธีการ และ หลักการเชื่อมต่อ ครับ
|
|
|
|
|
Date :
2015-08-06 14:29:33 |
By :
golfgee12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|