클라이언트가 파일 서버에 파일을 업로드 할 수있는 REST 웹 서비스를 작성하려고합니다. 어떤 지침을 언급 할 수있는 유용한 링크 나 예제가 있습니까?ADO.NET 데이터 서비스 - 파일 업로드
사용 가능한 ADO.NET 데이터 서비스를 사용하는 POST 작업에 대한 많은 예제를 보지 못했습니다.
클라이언트가 파일 서버에 파일을 업로드 할 수있는 REST 웹 서비스를 작성하려고합니다. 어떤 지침을 언급 할 수있는 유용한 링크 나 예제가 있습니까?ADO.NET 데이터 서비스 - 파일 업로드
사용 가능한 ADO.NET 데이터 서비스를 사용하는 POST 작업에 대한 많은 예제를 보지 못했습니다.
나는 이것을 파일 서버 자체에 직접 전달하는 방법을 100 % 확신하지는 않지만, ADO.Net Data Services는 확실히 데이터베이스와 비슷한 것을 지원합니다. 아래 코드는 파일을 데이터베이스에 저장하는 것과 유사한 목표를 달성하는 방법입니다. 도움이됩니다 얼마나 확실하지만,
var myDocumentRepositoryUri = new Uri("uri here");
var dataContext = new FileRepositoryEntities(myDocumentRepositoryUri);
var myFile = new FileItem();
myfile.Filename = "upload.dat";
myFile.Data = new byte[1000]; // or put whatever file data you want to here
dataContext.AddToFileItem(myFile);
dataContext.SaveChanges();
참고하지 않음 :이 코드는 또한 FileItem (객체로 데이터베이스 테이블의 표현)을 작성하고 데이터를 저장하는 엔티티 프레임 워크를 사용하고 있습니다.
권장 접근 방법인지는 모르겠지만 POST를 사용하여 ADO.NET dataservices에 파일을 업로드했습니다. 나는 그것에 대해 갔다하는 방법은 다음과 같습니다 난을 UploadFile이라는 서비스 동작을 구현했습니다 DataService에에
합니다 (WebInvoke의 속성을 사용하여이 POST 호출의 요구를 충족시켜 있도록) :
[WebInvoke]
public void UploadFile()
{
var request = HttpContext.Current.Request;
for (int i = 0; i < request.Files.Count; i++)
{
var file = request.Files[i];
var inputValues = new byte[file.ContentLength];
using (var requestStream = file.InputStream)
{
requestStream.Read(inputValues, 0, file.ContentLength);
}
File.WriteAllBytes(@"c:\temp\" + file.FileName, inputValues);
}
}
을 그리고 클라이언트 측에서 이것은 HttpRequest.Files 컬렉션의 파일 데이터를 배치하고 콘텐츠 유형을 설정하여 파일을 업로드 할 웹 클라이언트를 사용
var urlString = "http://localhost/TestDataServicePost/CustomDataService.svc/UploadFile";
var webClient = new WebClient();
webClient.UploadFile(urlString, "POST", @"C:\temp\test.txt");
: 나는 사용하여 데이터 서비스를 호출합니다. 웹 클라이언트가 파일 경로를 사용하여 파일을 읽는 대신 파일 내용을 자신이 직접 보내려면 (예 : Asp FileUpload 컨트롤에서) this 게시물에서와 비슷한 방법으로 WebRequest를 사용할 수 있습니다. 대신
FileStream fileStream = new FileStream(uploadfile,
FileMode.Open, FileAccess.Read);
를 사용하는 당신이 전달 바이트 배열을 사용할 수 있지만.
을 난이 도움이되기를 바랍니다.