PHP里面创建文件夹($ _POST)

时间:2016-07-05 13:10:53

标签: php

我需要将图像上传到服务器并使用当前时间戳存储到PHP创建的目录中。下面是代码的相关部分,但没有按预期工作,它也没有创建文件夹,也没有打印到控制台。可能是什么问题?

修改

基于以下评论修改了php

upload.php的

  <?php 
//get unique id
$up_id = uniqid(); 
?>

<?php

//process the forms and upload the files
if ($_POST) {

//specify folder for file upload

$user = "user";


//console.log("debug.......");
 echo "debug.......";

if (!file_exists("/var/www/Scan")) {
    mkdir("/var/www/Scan", 0777, true);
}

$folderName = date("Y-m-d") . "_" . date("h_i_sa") . "_" . $user;
if (!file_exists("/var/www/Scan/$folderName")) {
    mkdir("/var/www/Scan/$folderName", 0777, true);
}

$folder = "/var/www/Scan/$folderName"; 

//specify redirect URL
$redirect = "upload.php?success";

//upload the file
move_uploaded_file($_FILES["file"]["tmp_name"], "$folder" . $_FILES["file"]["name"]);

//do whatever else needs to be done (insert information into database, etc...)

//redirect user
header('Location: '.$redirect); die;
}
//

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Upload your file</title>

<!--Progress Bar and iframe Styling-->
<link href="style_progress.css" rel="stylesheet" type="text/css" />

<!--Get jQuery-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.js" type="text/javascript"></script>

<!--display bar only if file is chosen-->
<script>

$(document).ready(function() { 
//

//show the progress bar only if a file field was clicked
    var show_bar = 0;
    $('input[type="file"]').click(function(){
        show_bar = 1;
    });

//show iframe on form submit
    $("#form1").submit(function(){

        if (show_bar === 1) { 
            $('#upload_frame').show();
            function set () {
                $('#upload_frame').attr('src','upload_frame.php?up_id=<?php echo $up_id; ?>');
            }
            setTimeout(set);
        }
        //document.getElementById("message").innerHTML = "";

    });
//
});

</script>

</head>

<body>

<div id="outPopUp">

<h1 >Upload your file  </h1>



  <form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">

    <br />
    <br />
    <!--Choose a file to upload<br />-->

<!--APC hidden field-->
    <input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="<?php echo $up_id; ?>"/>
<!---->

     <!-- <input name="file" type="file" id="file" size="30"/>-->

<label class="custom-file-upload">
    <input name="file" type="file" id="file" onclick="myFunction()"  />
    Choose Video
</label>

<!--Include the iframe-->
    <br />

<br />
    <iframe id="upload_frame" name="upload_frame" color= black frameborder="0" border="0" src="" scrolling="no" scrollbar="no" > </iframe>
    <br />
<!---->

<br />

    <input class="btn btn-blue" name="Submit" type="submit" id="submit" value="Submit" />

<br />
<br />
    <?php if (isset($_GET['success'])) { ?>
    <span  style="color:#FFFFFF;" id="message" class="notice">Your file has been uploaded.</span>
    <?php } ?>

  </form>
  </div>


<script>
function myFunction() {
    document.getElementById("message").innerHTML = "";

}
/*document.getElementById('file').onchange = function () {
  //alert('Selected file: ' + this.value);
  var path = this.value;
  var fileName = path.replace(/.*(\/|\\)/, '');
  alert('Selected file: ' + fileName);
  //myFunction(fileName);

};*/

</script>

</body>

</html>

1 个答案:

答案 0 :(得分:1)

尝试一个简单的例子来理解:

<?php

//php content
if ($_POST) {   //here we are checking $_POST values that $_POST has some values. 

  //specify folder for file upload
  $tempDir = __DIR__ . DIRECTORY_SEPARATOR . 'upload'; //it means make a directory uploads where this php file is kept.
  if (!file_exists($tempDir)) { // if $tempDir is not there, so it will create that directory.
      mkdir($tempDir);
  }

  if(!empty($_FILES))//now checking your uploaded file is not empty
  {
      $nm=$_FILES['file']['name']; //here $nm get the name of the file 
      $tmp=$_FILES['file']['tmp_name'];//$tmp get the temporary file stored path 
      $mDir = __DIR__ . DIRECTORY_SEPARATOR . 'uploads'. DIRECTORY_SEPARATOR .time().$nm; //this your destination path with time+nameof file as a name of file.
      if(move_uploaded_file($tmp,$mDir)) //uploading file to your destination path, if uploaded then it will go in the if scope and echo.
      {
          echo "file uploaded with timestamp in uploads folder";
          //now redirect from here any where
      }
      else
      {
          echo "fail to upload a file";
      }
  }

}
?>