【问题标题】:Php file upload from a fixed directory从固定目录上传php文件
【发布时间】:2013-01-23 07:12:39
【问题描述】:

我希望用户必须从他/她的C 驱动器上传文件,他们不能从其他驱动器上传文件。

我的上传代码在这里。

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

$file_name = $_FILES['fupload']['name'];

$file_type = $_FILES['fupload']['type'];

print "Path: ".$_FILES['fupload']['tmp_name']."<br />";

print "Name: $file_name <br />";

print "Size: ".$_FILES['fupload']['size']."<br />";

print "Type: $file_type <br />";

if(copy($_FILES['fupload']['tmp_name'], "$file_name"))
{
    print "Upload Success";
}
else
{
    print "Error occur";
}

【问题讨论】:

  • 绝对不可能...
  • 这样做的动机是什么?为什么您对用户存储他上传的文件的位置感兴趣?并且:请记住,“C 盘”之类的东西只存在于 MS-Windows 系统上。所有其他操作系统都具有更现代、更灵活和更符合逻辑的本地文件系统布局。

标签: php html


【解决方案1】:

无法强制用户从特定驱动器上传文件。

请查看 php.net 中的此链接:$_FILES

您可以了解有关上传文件的所有信息:

 [name] => 400.png // file name
 [type] => image/png // file type
 [tmp_name] => /tmp/php5Wx0aJ // file temp name
 [error] => 0 // file uploading error
 [size] => 15726 // file size

对于 JavaScript,你可以看到这个问题:Javascript: Listing File and Folder Structure

【讨论】:

  • 是否可以获取用户文件上传目录如C://file.txt
  • 用 jscript 可以吗??
  • @AshekurRahmanmollaAsik:一劳永逸:不!出于安全和隐私的原因,您无法控制客户站点的文件挑选过程。如果你能找到一个大量安全线程的方法,一个浏览器错误会尽快修复。
  • 有可能只看我的回答,谢谢
【解决方案2】:

如果你能得到文件的绝对路径,你就可以为所欲为。 如果能得到文件的绝对路径,就可以做一个简单的相等测试 如果路径不是“C:\”。

但是内置的输入类型文件不会给你任何提示,因为 这是出于安全目的。

如果您可以制作自己的上传表单,那么您可以,但使用输入类型文件是不可能的。

【讨论】:

    【解决方案3】:

    您可以编写/使用在客户端处理上传的 Java Applet。在那里您可以检查实际的文件路径。但是,如果用户只是在上传文件之前将文件复制到 C:,那将无济于事。我认为尝试这个没有任何意义。

    仅使用 HTML/JavaScript/PHP 是不可能的。

    【讨论】:

      【解决方案4】:
      This is only possible IE.
      
      
      <head>
          <script type="text/javascript">
              function CheckAndSubmit () {
                  var uploadForm = document.getElementById ("uploadForm");
                  var uploadFile = document.getElementById ("uploadFile");
                  var fileinfo = document.getElementById ("fileloc");
      
                  if (uploadFile.value.length == 0) {
                      alert ("Please specify the path to the file to upload!");
                      return;
                  }
                  //alert(document.uploadForm.uploadFile.value);
      
                  fileinfo.value=uploadFile.value;
      
      
                  uploadForm.submit ();
              }
          </script>
      </head>
      <body>
          <?php
              //if(isset($_POST['uploadFile']))
                  print_r($_POST);
          ?>
          <form id="uploadForm" name="uploadForm" method="post" enctype="multipart/form-data" action="">
              Select a file: <input type="file" name="uploadFile" id="uploadFile" size="25" />
              <input type="hidden" id="fileloc" name="fileloc" value="" />
              <br /><br />
              <input type="button" value="Upload" onclick="CheckAndSubmit ()"/>
          </form>
      </body>
      

      如果没有显示完整路径>> 1.打开Internet Explorer Internet选项>安全>自定义级别> 2.然后在上传时启用include本地目录文件路径....

      享受...

      【讨论】:

        猜你喜欢
        • 2012-09-23
        • 2014-11-10
        • 1970-01-01
        • 2017-10-25
        • 2011-10-25
        • 2020-02-21
        • 2020-12-21
        • 2018-03-17
        • 1970-01-01
        相关资源
        最近更新 更多