试图将文件上载到一个目录中,当我使用此代码:php,文件上传到标题中带有“空格”的目录?
if(move_uploaded_file($_FILES['upl']['tmp_name'], '../'.$acct_id.'/music/'.$playlist.'/'.$_FILES['upl']['name'])){
echo '{"status":"success"}';
exit;
}
它只要工作正常,为$播放列表变量是一个字符串(无空格)
但当变量$playlist
与"Greatest Hits"
之间有两个单词之间的空格时,代码将不起作用?
我也尝试添加rawurlencode($playlist)
的建议通过一个朋友,但仍然没有运气:
if(move_uploaded_file($_FILES['upl']['tmp_name'], '../'.$acct_id.'/music/'.rawurlencode($playlist).'/'.$_FILES['upl']['name'])){
echo '{"status":"success"}';
exit;
}
我会尽量解释不同的方式。
字符串中的问题是$playlist
变量,而不是上传的文件名。
在我看来,您的建议将"rawurldecode"
放在要上传的文件名上。
我上传的文件确实有空格,只要$playlist
没有空格,它们就可以正常工作,所以问题出在$playlist
的目录标题上。
我曾尝试:
- htmlentities($playlist)
- urlencode($playlist)
- urldecode($playlist)
- rawurlencode($playlist)
- rawurldecode($playlist)
这是否有道理?请帮助....
由于浏览器不支持URL中的空格,所以用短划线( - )或分数(_)除去空格。 –
用户正在创建目录名称(例如“Greatest Hits”,“20世纪80年代的Hits”等)。这是一个用户体验问题,我不能要求用户制作播放列表名称,不得有空格... – NetTemple
文件名有空格并且正在上传,它只是导致问题的$播放列表字符串。 – NetTemple