2016-07-05 128 views
0

我需要将图像上传到服务器并使用当前时间戳存储到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> 
+2

“'$ folder =”/var/www/Scan/'.$folderName“; ''不是正确的连接;你的意思是'$ folder =“/ var/www/Scan/$ folderName”'? – Ben

+0

是的,同样的方式,但是为什么没有控制台输出 – CodeDezk

+1

从PHP实现'console.log ();''或者点符号... – MonkeyZeus

回答

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"; 
     } 
    } 

} 
?> 
+0

确定这个工程,但所有人必须做的是修复一条线。我可以补充说,他不回答我。 –

+0

是的,它已经为我工作 –

+0

它会做一个上传目录,然后上传带有时间戳的文件。 –