从文件获取内容时发出警告,如果使用 "move_uploaded_file()" 和 "file_get_contents()"
Warning while getting content from file, if used "move_uploaded_file()" and "file_get_contents()"
当我按以下顺序使用函数时,我在 PHP 中收到有关停止脚本的警告:
move_uploaded_file() used first
然后包括下一个函数:
file_get_contents() used second
我收到警告消息:
file_get_contents(D:\Programs\WAMP\WAMP_Server\tmp\phpD8E2.tmp):
failed to open stream: No such file or directory
但是,如果我反转这些函数:file_get_contents() first 然后使用 move_uploaded_file() - 一切正常,没有错误,并且可以正常工作。哪里出了问题?我的代码错误如下:
/* File management variables */
$filename = $_FILES["uploadFile"]["name"];
$uploadedFile = $_FILES['uploadFile']['tmp_name'];
$uploadedFileType = $_FILES['uploadFile']['type'];
$target_dir = '../uploads/';
$target_dir_file = $target_dir . basename($filename);
$textFileType = strtolower(pathinfo($target_dir_file,PATHINFO_EXTENSION));
/* First: used move_uploaded_file() func */
move_uploaded_file($uploadedFile, $target_dir_file);
/* Second: used file_get_contents() func */
$dbPath = fopen('../database/database.txt', 'a');
$uploadedFile = file_get_contents($uploadedFile);
fwrite($dbPath, $uploadedFile);
fclose($dbPath);
如果把这两个函数反过来
/* First: used file_get_contents() func */
$dbPath = fopen('../database/database.txt', 'a');
$uploadedFile = file_get_contents($uploadedFile);
fwrite($dbPath, $uploadedFile);
fclose($dbPath);
/* Second: used move_uploaded_file() func */
move_uploaded_file($uploadedFile, $target_dir_file);
一切正常,脚本运行无误。
为什么我在使用第一个 move_uploaded_file() func 和 file_get_contents()[=36 之后出现错误=] func,但是在反转之后它可以正常工作吗?如何在不逆转的情况下修复它?
这是因为 move_uploaded_file ( string $filename , string $destination )
嗯...将 $filename
移动到新的 $destination
。所以在原路径下已经不可用了
鉴于你的第一个例子,你应该这样做:
$uploadedFile = file_get_contents($target_dir_file);
当我按以下顺序使用函数时,我在 PHP 中收到有关停止脚本的警告:
move_uploaded_file() used first
然后包括下一个函数:
file_get_contents() used second
我收到警告消息:
file_get_contents(D:\Programs\WAMP\WAMP_Server\tmp\phpD8E2.tmp): failed to open stream: No such file or directory
但是,如果我反转这些函数:file_get_contents() first 然后使用 move_uploaded_file() - 一切正常,没有错误,并且可以正常工作。哪里出了问题?我的代码错误如下:
/* File management variables */
$filename = $_FILES["uploadFile"]["name"];
$uploadedFile = $_FILES['uploadFile']['tmp_name'];
$uploadedFileType = $_FILES['uploadFile']['type'];
$target_dir = '../uploads/';
$target_dir_file = $target_dir . basename($filename);
$textFileType = strtolower(pathinfo($target_dir_file,PATHINFO_EXTENSION));
/* First: used move_uploaded_file() func */
move_uploaded_file($uploadedFile, $target_dir_file);
/* Second: used file_get_contents() func */
$dbPath = fopen('../database/database.txt', 'a');
$uploadedFile = file_get_contents($uploadedFile);
fwrite($dbPath, $uploadedFile);
fclose($dbPath);
如果把这两个函数反过来
/* First: used file_get_contents() func */
$dbPath = fopen('../database/database.txt', 'a');
$uploadedFile = file_get_contents($uploadedFile);
fwrite($dbPath, $uploadedFile);
fclose($dbPath);
/* Second: used move_uploaded_file() func */
move_uploaded_file($uploadedFile, $target_dir_file);
一切正常,脚本运行无误。
为什么我在使用第一个 move_uploaded_file() func 和 file_get_contents()[=36 之后出现错误=] func,但是在反转之后它可以正常工作吗?如何在不逆转的情况下修复它?
这是因为 move_uploaded_file ( string $filename , string $destination )
嗯...将 $filename
移动到新的 $destination
。所以在原路径下已经不可用了
鉴于你的第一个例子,你应该这样做:
$uploadedFile = file_get_contents($target_dir_file);