我一生都无法理解我的代码有什么问题。无论如何,我相信 ajax 代码是正确的(虽然我可能是错的)。
我有一个“表单”,它是一个字段长,我不关心提交。我需要使用 CURRENT 键入的值,这样我就可以将其发送到另一个页面而不提交任何值并因此更改页面 - 因此使用 ajax。我有一个在表单之外的假提交按钮(由 div 创建)。我将使用该文件夹名称来提交内容。
在第二个页面上,这是一个上传页面,我正在尝试创建一个文件夹。基本上,在我的图像文件夹中,我只想创建一个子文件夹。因此,在我的表单中,人员在文本框中输入名称,然后该值将成为新文件夹的名称。
我在网上查看了一个叫做文件夹递归的东西。有人对此提出了一些建议(但我误解了他的建议)。无论如何,我已经开始在网上寻找,但没有任何运气。由于我需要使用键入的值,因此我在网上找到的内容在这方面对我没有帮助。
我能输出的最好的东西是在我的图像目录中创建的 $folder。无论如何,由于那次尝试失败了,我已经多次修改了我的编码。但以下是我能想到的最好的。
这是我的编码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>File Upload!</title>
<script src="jquery.js"></script>
<script src="javascript.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="pacifico.css" />
</head>
<body>
<script>
setInterval(function(){
$.post("test.php",{
value: $("#folder").val()
},
function(result){
console.log('saved!');
});
}, 2000);
</script>
<div>
<form>
<input type="text" id="folder" name="folder">
<input id="btn_send" type="button" value="Submit" />
</form>
</div>
<div class="content">
<div id="drop-files" ondragover="return false">
Drop Images Here
</div>
<div id="uploaded-holder">
<div id="dropped-files">
<div id="upload-button">
<a href="#" class="upload">Upload!</a>
<a href="#" class="delete">delete</a>
<span>0 Files</span>
</div>
</div>
<div id="extra-files">
<div class="number">
0
</div>
<div id="file-list">
<ul></ul>
</div>
</div>
</div>
<div id="loading">
<div id="loading-bar">
<div class="loading-color"> </div>
</div>
<div id="loading-content">Uploading file.jpg</div>
</div>
<div id="file-name-holder">
<ul id="uploaded-files">
<h1>Uploaded Files</h1>
</ul>
</div>
</div>
</body>
</html>
和另一页
<?php
$folder = $_GET['folder'] . '/';
$dirPath = $folder;
$result = mkdir($dirPath, 0755);
if ($result == 1) {
echo $dirPath . " has been created";
} else {
echo $dirPath . " has NOT been created";
}
// We're putting all our files in a directory called images.
$uploaddir = 'images/'.'$folder';
// The posted data, for reference
$file = $_POST['value'];
$name = $_POST['name'];
// Get the mime
$getMime = explode('.', $name);
$mime = end($getMime);
// Separate out the data
$data = explode(',', $file);
// Encode it correctly
$encodedData = str_replace(' ','+',$data[1]);
$decodedData = base64_decode($encodedData);
if(file_put_contents($uploaddir.$folder.$name, $decodedData)) {
;
}
else {
// Show an error message should something go wrong.
echo "Something went wrong. Check that the file isn't corrupted";
}
?>