dpm91915
2015-10-21 05:51
浏览 94
已采纳

允许php上传脚本上的所有文件扩展名

So I am using a raspberry pi and want to use it as a place where I can upload and download any kind of file with any kind of extension.

Here is my html

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="upload">
</form>

</body>
</html>

Here is my php

<?php  
if(isset($_FILES['file'])) {
    $file = $_FILES['file'];

    $file_name = $file['name'];
    $file_tmp = $file['tmp_name'];
    $file_size = $file['size'];
    $file_error = $file['error'];

    $file_ext = explode('.', $file_name);
    $file_ext = strtolower(end($file_ext));

    $allowed = array('txt', 'jpg');

    if(in_array($file_ext, $allowed)) {
        if($file_error === 0) {
            if($file_size <= 1073741824) {

                $file_name_new = uniqid('', true) . '.' . $file_ext;
                $file_destination = 'files/' . $file_name_new;

                if(move_uploaded_file($file_tmp, $file_destination)) {
                    echo $file_destination;
                }
            }
        }
    }
}

It works great but only lets me upload .txt and .jpg files. I tried removing the "$allowed" thing all together but broke the script.

Any ideas?

图片转代码服务由CSDN问答提供 功能建议

所以我使用的是树莓派,并希望将它用作我可以上传和下载任何一种 任何类型的扩展名的文件。

这是我的html

 &lt;!DOCTYPE html&gt; 
&lt; html&gt; 
&lt; body&gt; 
 
&lt;  form action =“upload.php”method =“post”enctype =“multipart / form-data”&gt; 
&lt; input type =“file”name =“file”&gt; 
&lt; input type =“submit  “value =”upload“&gt; 
&lt; / form&gt; 
 
&lt; / body&gt; 
&lt; / html&gt; 
   
 
 

这是我的php < / p>

 &lt;?php 
if(isset($ _ FILES ['file'])){
 $ file = $ _FILES ['file']; 
 
 $  file_name = $ file ['name']; 
 $ file_tmp = $ file ['tmp_name']; 
 $ file_size = $ file ['size']; 
 $ file_error = $ file ['error']; \  n 
 $ file_ext = explode('。',$ file_name); 
 $ file_ext = strtolower(end($ file_ext)); 
 
 $ allowed = array('txt','jpg'); 
  
 if(in_array($ file_ext,$ allowed)){
 if($ file_error === 0){
 if($ file_size&lt; = 1073741824){
 
 $ file_name_new = uniqid('', 真的)。  ''  。  $ file_ext; 
 $ file_destination ='files /'。  $ file_name_new; 
 
 if(move_uploaded_file($ file_tmp,$ file_destination)){
 echo $ file_destination; 
} 
} 
} 
} 
} 
    
 
 

它工作得很好,但只允许我上传.txt和.jpg文件。 我试图一起删除“$ allowed”的东西,但打破了脚本。

有什么想法吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douliang1900 2015-10-21 05:53
    已采纳

    I think you should change code to this :

        if($file_error === 0) {
            if($file_size <= 1073741824) {
    
                $file_name_new = uniqid('', true) . '.' . $file_ext;
                $file_destination = 'files/' . $file_name_new;
    
                if(move_uploaded_file($file_tmp, $file_destination)) {
                    echo $file_destination;
                }
            }
        }
    
    点赞 打赏 评论

相关推荐 更多相似问题