没有文件扩展名

3
我正在使用我的Android应用程序将一些文件上传到我的wamp服务器。这些文件成功地上传到了服务器,但是那些文件名中含有空格的文件没有扩展名。每次我尝试打开这些文件时,系统都会提示我选择一个要打开的应用程序。如果我选择相关的应用程序,文件就能成功打开。 有没有办法使这些扩展名可用,这样我就不必每次都选择应用程序了?
我的PHP代码如下:

$file_path = "uploads/";

$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
    echo "success";
} else{
    echo "fail";
} ?>

'


1
你是说如果一个文件名包含空格,并且它有原始的文件扩展名,那么上传后的文件将不再具有扩展名吗? - Funk Forty Niner
是的,例如,如果手机上的原始文件名为“abc xyz.pdf”,则上传到服务器上的文件名将只是“abc”。没有其他的。 - Prerak Sola
1
你可以使用 str_replace() 将空格替换为下划线。这是我之前为某人所做的。 - Funk Forty Niner
3个回答

1
我将我的Java代码更新为以下内容: 之前的代码 dos.writeBytes("Content-Disposition: form-data; name= \"uploaded_file\";filename="+ fileName + "" + lineEnd); 更新的代码 dos.writeBytes("Content-Disposition: form-data; name= \"uploaded_file\";filename="+ fileName.replace(" ", "_") + "" + lineEnd);

1
你可以使用str_replace()函数将空格替换为下划线:
$filename = str_replace(' ', '_', $filename);

或者使用 preg_replace()
$file_path = "uploads";
$file = basename($_FILES['uploaded_file']['name']);
$newfilename = preg_replace('/\s+/', '_', $file);

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path. "/" .$newfilename))

我尝试了这个 $fileName = str_replace(" ","_", basename( $_FILES['uploaded_file']['name'])); 但它没有起作用。 - Prerak Sola
basename($_FILES['uploaded_file']['name']); 从 "abc xyz.pdf" 中仅返回 "abc"。因此,我认为我的 Java 代码发送的文件名不完整。 - Prerak Sola
@PrerakSola 喔,好的。很可能是Java的问题,这是我不懂的,抱歉。 - Funk Forty Niner
没问题。我感谢你的帮助。非常感谢... :) - Prerak Sola
@PrerakSola 不用谢。感谢你更新了答案,这是一个很好的补充 :) 干杯,我已经点赞了。 - Funk Forty Niner
显示剩余2条评论

-1
$file_path = "uploads/";
$fine_name=basename($_FILES['uploaded_file']['name']).'.'."txt";//<put extention here like     txt,apk,htm,mp3 etc>

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path."/".$fine_name)) {
echo "success";
} else{
echo "fail";
} 

用户可以选择任何类型的文件。因此,我不知道它的扩展名是什么。 - Prerak Sola
如果你感到一些错误,那么可以使用copy()方法。move_uploaded_file()很好用。// 为了检查文件扩展名,使用$_FILES['uploaded_file']['type']。更多细节请参见var_dump($_FILES['uploaded_file']);你会明白的。 - Nasir Uddeen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接