이것은 지금 몇 시간 동안 나를 괴롭 히고 있습니다.
나는 angularjs로 응용 프로그램을 작성하고 파일 업로드 작업의 PHP 측을 얻으려고합니다.
php 스크립트가/tmp/randomuniquefilename에서 올바른 디렉토리로 파일을 복사하려고합니다. 문제는 그것이 내 루트 임시 폴더에 전혀 저장되기를 원하지 않는다는 것입니다. PHP.ini의 기본 파일 업로드 경로를/var/www/tmp// var/www/tmp/폴더로 바꾸고 올바른 권한을 가지고 있습니다.
나는 어떻게 변할 수 있습니까? 내 $_FILES[ 'file' ][ 'tmp_name' ]
변수가 설정되어있는 방법을 알고 싶습니다. 이전에 간단하게 시도했습니다. $_FILES[ 'file' ][ 'tmp_name' ] = '/var/www/tmp/'
이것이 나에게 효과가 없었습니다.
[Tue Jan 07 15:46:14 2014] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(/var/www/funandgames/jobernize/uploaded/bleg.png): failed to open stream: Permission denied in /var/www/funandgames/jobernize/uploaded/test.php on line 18, referer:
http://127.0.0.1/funandgames/jobernize/
[Tue Jan 07 15:46:14 2014] [error] [client 127.0.0.1] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpbkz0xn' to '/var/www/funandgames/jobernize/uploaded/bleg.png' in /var/www/funandgames/jobernize/uploaded/test.php on line 18, referer:
http://127.0.0.1/funandgames/jobernize/
가 그 VAR 설정 내 JS 수 있을까, 아니면 PHP 것입니까?
<?php
if (!empty($_FILES)) {
function varDumpToString ($var)
{
ob_start();
var_dump($var);
$result = ob_get_clean();
error_log($result);
}
varDumpToString($_FILES);
$tempPath = '/var/www' . $_FILES[ 'file' ][ 'tmp_name' ];
$uploadPath = dirname(__FILE__) . '/' . $_FILES[ 'file' ][ 'name' ];
error_log($tempPath);
move_uploaded_file($tempPath, $uploadPath);
$answer = array('answer' => 'File transfer completed');
$json = json_encode($answer);
echo $json;
} else {
echo 'No files';
}
?>
난 그냥 경로는/var/www가를 추가, 지금은 오류를 받고 있지 않다,하지만 아무것도 발생되지 않으며, 파일이 복사되지 않는 :
여기 내 PHP입니다.
파일 이름이 아닌 임시 이름에/tmp /가 포함되어있는 것 같습니다. 정상입니까?
'php.ini'를 변경 한 후 웹 서버를 다시 시작 했습니까?참고로, 'tmp_name'은 서버 측으로 설정되어 있고 * 권한이 거부되었습니다. * 오류는 소스 파일과 관련이 없으며 대상 경로와 관련이 없습니다. – Phil
예, 나는 감사를 느낍니다. 대상 경로, 올바른 소스 경로를 가져 오려고합니다. – Melbourne2991
['upload_tmp_dir'] (http://php.net/manual/ini.core.php#ini.upload-tmp-dir) 설정에 대해'phpinfo()'가 보여주는 것을 확인하십시오. 또한,'tmp_name'은 전체 경로를 포함합니다. 접두어를 붙이지 마십시오. – Phil