파일 업로드를 관리하기 위해 내 사이트에 Uploadify jQuery 플러그인을 설정했습니다. 이 업로드 스크립트가 뱉어 무엇이든 나를 보여주기위한 것입니다빈 데이터를 반환하는 업로드 스크립트
'onUploadSuccess' : function(file, data, response) {
console.log("Upload complete for file " + file.name + ". Script returned: " + data);
}
다음 onUploadSuccess
이벤트 내에서,이 코드가 있습니다. 이제 대개 응답은 다음과 같습니다.
test.jpg 파일 업로드 완료. : 스크립트 반환 { "상태": 1, "파일": { "ID": "v8rwlxj3", "이름": "test.jpg를"}}
업로드 스크립트 파일을 처음 받고있다, 다음과 같이 컬을 사용하여 Rapidshare에 업로드 :이 업로드 때
// Move uploaded file
move_uploaded_file($_FILES['Filedata']['tmp_name'], $targetDir . '/' . $id);
// Get the RapidShare server to upload to
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://api.rapidshare.com/cgi-bin/rsapi.cgi?sub=nextuploadserver');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if(!$uploadServer = trim(curl_exec($ch))) {
error('nextuploadserver failed');
}
if(strstr($uploadServer, 'ERROR:')) {
error('nextuploadserver failed');
}
// Upload the file to RapidShare
$uploadID = mt_rand(1000000000, 9999999999);
$url = 'http://rs' . $uploadServer . '.rapidshare.com/cgi-bin/rsapi.cgi?uploadid=' . $uploadID;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
$postFields = array('sub' => 'upload',
'login' => 'login',
'password' => 'password',
'uploadid' => $uploadID,
'filename' => $_FILES['Filedata']['name'],
'filecontent' => '@' . $targetDir . '/' . $id);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
if(!$resp = curl_exec($ch)) {
error('upload call failed');
}
는 업로드 스크립트는 그래서 같은 JSON 응답을 뱉어 :
// Output
echo json_encode(array('status' => 1, 'file' => array('id' => $id, 'name' => $uploadDetails[1])));
이 작은 파일에 대해 잘 작동합니다. 그러나 30MB 테스트 파일을 업로드하면 다음과 같은 응답이 표시됩니다.
30mb.txt 파일 업로드 완료. 처음에는 PHP가 최대 실행 시간을 치는 줄 알았는데에서
,하지만 난 내 스크립트의 상단이 있습니다 : 스크립트가 반환
set_time_limit(21600); // 6 hours
게다가, 나는 PHP 오류가있는 볼 것 반환되었습니다. 그러나 그것은 단지 무엇이든을 반환하지 않습니다. 무엇이 이것을 일으킬 수 있습니까? 감사.
PHP가 제한 시간을 초과하지 않을 수 있지만 응답을 기다리는 동안 ajax가 연결 시간 초과에 도달했을 수 있습니다. –
아, 그럴 수도 있습니다. Uploadify는 30 초 후에 스크립트에서 응답을받지 못하면 업로드가 성공했다고 가정합니다. 성공 타임 아웃을 높게 설정하고 작동하는지 확인합니다. 감사. –
그래, 그게 다야. 고마워요! :) –