2013-04-30 4 views
4

이 간단한 HTML 양식을 사용할 때 그러나, 내 서버에 파일을 업로드하기 위해 PHP를 사용하여 악몽을 보내고있어,이 작업이 나타납니다 :PHP 파일 업로드

<html><body> 
<form enctype="multipart/form-data" action="uploads.php" method="POST"> 
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 
Choose a file to upload: <input name="uploadedfile" type="file" /><br /> 
<input type="submit" value="Upload File" /> 
</form> 

PHP는 그 다음입니다 : 명령 행 또는 쉘 스크립트에서 컬을 사용하여이 기술을 통해 파일을 전송하기 위해 가능한 모든 방법

<?php 
$target_path = "uploads/"; 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
echo "The file ". basename($_FILES['uploadedfile']['name']). 
" has been uploaded"; 
} else{ 
echo "There was an error uploading the file, please try again!"; 
} 
?> 

있습니까? 의 라인을 따라, 즉 뭔가 :

curl -f "@/path/to/my/file;type=text/html" http://mywebserver.com/uploads.php 

특정 라인은 저를 준다 : "컬 : (22) 1 ::에 연결하지 못했습니다 : 사용 권한이 거부되었습니다"사이트에 암호가 없지만 등 나는이 가정 가능하지만 문법이 잘못되었습니다.

+0

당신은 또한 파일의 모든 종류를 업로드하고 보안 구멍처럼 -X 'POST''이 스크립트에 매우 신중해야합니다 – fardjad

+0

'를 통해 게시 할 수있는 방법을 설정해야합니다 (스크립트가 될 수 있습니다 서버에 직접 업로드 한 다음 브라우저를 사용하여 실행) ... 보호를위한 추가 코딩이 필요합니다! –

답변

7

난 당신이 인수가 (양식) 자본 F되고 싶은 생각합니다. 소문자 f은 실패한 것이며 오류 코드 22를 반환합니다. 진실하게도 설명서에 있습니다!

-f,

은 (HTTP) 자동으로 서버 오류에 (더 출력에서 ​​모두)를 실패하지 --fail. 이것은 대부분 더 나은 실패 시도와 더 나은 거래에 스크립트 등을 가능하게 할 입니다. HTTP 서버가 문서를 제공하지 못하는 일반적인 경우에 따라서는 (종종 이유를 더 설명하는) 때문에라는 HTML 문서를 반환합니다. 이 플래그는 에러 22

을 그 출력에서 ​​말림 방지 및 반환이 방법하지 안전 실패 비 성공 응답 코드를 통해 미끄러질 경우, 특히 인증이 포함된다 (응답 코드 (401)가있다 및 407).

-F

는 --form

(HTTP)이 컬이 채워진 형태로하는 사용자가 가 제출 버튼을 눌렀습니다 에뮬레이트 할 수 있습니다. 이것은이하는 파일을이기 위하여 '내용'부분을 강제와 파일 이름을 접두사로 바이너리 파일 등의 업로드 할 수 RFC 2388.에 따라 콘텐츠 형식의 다중/폼 데이터를 사용하여 데이터를 게시하는 컬 원인 @ 기호. 파일의 내용을 부분으로 가져 오려면 파일 이름 앞에 <이라는 접두어를 붙입니다. @와 < 사이의 차이는 <가 텍스트 필드를 만들어 단지 파일에서 텍스트 필드에 대한 내용을다면 @이 파일이 파일 업로드와 게시물에 집착하게하는 것이 다음이다.

또한, 당신은 당신의 파일라는 변수 적이 없다. 난 당신이 원하는 생각 :

curl -F "[email protected]/path/to/my/file" http://mywebserver.com/uploads.php 
+0

예 : http://ariejan.net/2010/06/07/uploading-files-with-curl/ – mbarlocker

+1

감사합니다, 그것은 여전히 ​​작동하지 않습니다하지만.(PHP가 반환하는 이번에는 : "파일을 업로드하는 중에 오류가 발생했습니다."오늘은 -f 실패가 될 운명이라고 생각합니다. – BSUK

+0

파일 변수의 이름 지정에 대해 조금 더했습니다. –