[英]Unable to upload file via php
I'm trying to upload a file and then save it by changing it's name. 我正在尝试上传文件,然后通过更改文件名来保存它。 However, it doesn't work and give me this error.
但是,它不起作用,并给我这个错误。
Warning: move_uploaded_file(uploads/564b68ef0e2f8|3d-pc-nature-wallpaper.jpg): failed to open stream: Invalid argument in C:\\wamp\\www\\f\\ajax.php on line 157
警告:move_uploaded_file(uploads / 564b68ef0e2f8 | 3d-pc-nature-wallpaper.jpg):无法打开流:第157行的C:\\ wamp \\ www \\ f \\ ajax.php中的参数无效
Warning: move_uploaded_file(): Unable to move 'C:\\wamp\\tmp\\phpA364.tmp' to 'uploads/564b68ef0e2f8|3d-pc-nature-wallpaper.jpg' in C:\\wamp\\www\\f\\ajax.php on line 157
警告:move_uploaded_file():无法将C:\\ wamp \\ www \\ f \\ ajax.php中的'C:\\ wamp \\ tmp \\ phpA364.tmp'移至'uploads / 564b68ef0e2f8 | 3d-pc-nature-wallpaper.jpg'在第157行
I have verified and the file is correctly going to $_FILES . 我已经验证并且文件正确地转到$ _FILES 。 Here's my code.
这是我的代码。
$rand_img = uniqid();
$file_upload_folder = "uploads";
$finalImgLink = $file_upload_folder . '/' . $rand_img . '|' . $_FILES['file']['name'];
//move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/$rand_img|' . $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $finalImgLink))
{
echo "ok";
}
else
{
echo "not ok";
}
What is wrong here? 怎么了
You cannot use a pipe (|) in file names. 您不能在文件名中使用管道(|)。 This is the most likely cause of the error you are experiencing.
这是您遇到错误的最可能的原因。 Try change it to an underscore or dash.
尝试将其更改为下划线或破折号。
$rand_img = uniqid();
$file_upload_folder = "uploads";
$finalImgLink = $file_upload_folder . '/' . $rand_img . '_' . $_FILES['file']['name'];
//move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/$rand_img|' . $_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $finalImgLink))
{
echo "ok";
}
else
{
echo "not ok";
}
On windows, filename cannot contain any of the following characters: 在Windows上,文件名不能包含以下任何字符:
\\ / : * ? \\ /:*? " < > |
“ <> |
You can't use |
您不能使用
|
in your filename. 在您的文件名中。 If you want a separator, you can have something like
, .
如果要使用分隔符,可以使用
, .
or any specific string like abc
, xy
etc, 或任何特定的字符串,例如
abc
, xy
等,
So update your code in the following way. 因此,可以通过以下方式更新代码。
$finalImgLink = $file_upload_folder . '/' . $rand_img . ".." . $_FILES['file']['name'];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.