Php 上载文件时,是否可以请求一个post值作为目录字符串?
我想根据表单提交中的隐藏值更改上载目录 正如你所看到的,我在move_上传了一个POST_文件,该文件在表单上提交,但如果我添加目录位置,它将无法上传。在此之前已将目录创建为POST值。多谢各位Php 上载文件时,是否可以请求一个post值作为目录字符串?,php,sql,sql-server,post,Php,Sql,Sql Server,Post,我想根据表单提交中的隐藏值更改上载目录 正如你所看到的,我在move_上传了一个POST_文件,该文件在表单上提交,但如果我添加目录位置,它将无法上传。在此之前已将目录创建为POST值。多谢各位 <?php session_start(); if($_SESSION['myusername'] == 'admin') { $header = 'headeradmin.php'; } elseif (!empty($_SESSION['myusername'])) {
<?php
session_start();
if($_SESSION['myusername'] == 'admin')
{
$header = 'headeradmin.php';
}
elseif (!empty($_SESSION['myusername']))
{
$header = 'header.php';
}
else
{header("location:../../login");}
require_once '../../connect.php';
$loggedin= $_SESSION['myusername'];
$result = mysql_query("SELECT * FROM login");
if (!$result) { // add this check.
die('Invalid query: ' . mysql_error());
}
$id = $_GET['id'];
?>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Image upload</title>
<link href='http://fonts.googleapis.com/css?family=Boogaloo' rel='stylesheet' type='text/css'>
<link rel="StyleSheet" href="../../custom.css" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript" src="js/multiupload.js"></script>
<script type="text/javascript">
var config = {
support : "image/jpg,image/png,image/bmp,image/jpeg,image/gif", // Valid file formats
form: "demoFiler", // Form ID
dragArea: "dragAndDropFiles", // Upload Area ID
uploadUrl: "upload.php" // Server side upload url
}
$(document).ready(function(){
initMultiUploader(config);
});
</script>
<link href="css/style.css" type="text/css" rel="stylesheet" />
</head>
<body lang="en">
<div id="content">
<?php require_once $header;
$sql_query = mysql_query("SELECT * FROM clients WHERE `id` = $id");
while($row = mysql_fetch_array($sql_query))
{
$username = $row['firstname'] . ' ' . $row['lastname'];
if (!file_exists('uploads/' . $username )) {
mkdir('uploads/' . $username, 0777, true);
}
}
?>
<h1 class="title">Multiple Drag and Drop File Upload</h1>
<div id="dragAndDropFiles" class="uploadArea">
<h1>Drop Images Here</h1>
</div>
<form name="demoFiler" id="demoFiler" enctype="multipart/form-data">
<input type="file" name="multiUpload" id="multiUpload" multiple />
<input type="hidden" value="<?php echo $username; ?>" name="username" id="username"/>
<input type="submit" name="submitHandler" id="submitHandler" value="Upload" class="buttonUpload" />
</form>
<div class="progressBar">
<div class="status"></div></div>
</div>
</body>
</html>
图像上传
变量配置={
支持:“image/jpg、image/png、image/bmp、image/jpeg、image/gif”、//有效文件格式
表单:“demoFiler”,//表单ID
dragArea:“dragAndDropFiles”,//上传区域ID
uploadUrl:“upload.php”//服务器端上传url
}
$(文档).ready(函数(){
initMultiUploader(配置);
});
多个拖放文件上载
在此处放置图像
您需要删除echo
if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_POST['username'] . '/' .$_FILES['file']['name'])){
我还建议不要使用$\u POST['username']
,而是使用$\u SESSION['username']
,除非我遗漏了什么,并且您允许用户将文件上载到其他用户目录中首先,这段代码不太安全。用户可以在那里写任何东西。
第二,不要在函数中使用echo。只要$_POST['username']。如果您没有100%意识到您所要求的内容的安全性,那么如果您允许上传到任何位置,您基本上是在打开服务器,以便轻松接管。如果您知道并通过其他控件解决了这些问题,那就没关系了。我不知道你的安全编码知识/经验水平是什么,我只是把它传给你,因为它对我来说很危险。同样重要的是:(虽然采用这种设计,没有真正需要遍历路径。)在此之前,我有一个会话,只有管理员可以登录上载文件,如果不是正确的密码/用户名,他们会被踢。我将包括安全,但如果我添加到这个代码上传似乎停止工作。我将添加表单,以显示发生了什么感谢管理员将被登录,但管理员将只允许添加文件到另一个客户端帐户
if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_POST['username'] . '/' .$_FILES['file']['name'])){