将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组
Posted
技术标签:
【中文标题】将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组【英文标题】:Read in PHP Div value into a $variable and in Javascript read file names of uploaded files into array 【发布时间】:2015-09-02 05:30:08 【问题描述】:我有几个问题:
第 1 部分:我有一个 div
和 id="hiddenID"
。我想在现有主文件夹sobimages
下创建(如果子文件夹不存在)具有此ID 的子文件夹。
然后将文件写入这个新的子文件夹中。
注意:如果没有子文件夹,它可以工作!
第 2 部分:上传的文件总是留下名称和成功信息。我想从屏幕上删除此消息,包括已上传文件的名称。
第 3 部分:在一个简单的 javascript 数组中读取所有文件名。然后,我将使用 mysql-Databse 中的 Json 来保护它。在您的大力帮助下。我知道怎么做,呵呵
文件body_editarticles.php
<?php session_start();
$_db_host = "myserver.com:3306";
$_db_username = "admin0";
$_db_passwort = "star1dgffh";
$_db_datenbank = "sob";
$_db_currentID ="";
# Verbindung zur Datenbank herstellen
$_link = mysql_connect($_db_host, $_db_username, $_db_passwort);
# Pr�fen ob die Verbindung geklappt hat
if (!$_link)
# Nein, also das ganze Skript abbrechen !
die("Keine Verbindung zur Datenbank m�glich: " .
mysql_error());
# Datenbank ausw�hlen
mysql_select_db($_db_datenbank, $_link);
?>
<!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" dir="ltr" lang="en-US">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/scroll.js"></script>
<script type="text/javascript" src="js/jquery.js" ></script>
<script type="text/javascript" src="js/jquery.uploadfile.min.js"></script>
</head>
<body class="page page-id-11505 page-template-default" onload="jsRecordCurrent();">
<div id="page-wrap">
<?php
include('includes/header.html');
?>
<div id="hiddenID" style="display: none;"></div>
<div id="mulitplefileuploader" title="">
<br>
Upload
</div>
<div id="status"></div>
<script>
$(document).ready(function()
var settings =
url: "upload.php",
method: "POST",
allowedTypes:"jpg,png,gif",
fileName: "myfile",
multiple: true,
onSuccess:function(files,data,xhr)
$("#status").html("<font color='green'>Upload successful</font>");
,
onError: function(files,status,errMsg)
$("#status").html("<font color='red'>Upload failed</font>");
$("#mulitplefileuploader").uploadFile(settings);
);
</script>
</div>
</div>
</div>
<div id="aside">
</div>
<br class="clearfloat" />
</div> <!-- End of main container -->
</div><!-- END Page Wrap -->
<div id="footer">
<br class="clearfloat" />
</div>
</body>
</html>
文件“upload.php”
<?php
//If directory doesnot exists create it.
$output_dir = "sobimages/";
if(isset($_FILES["myfile"]))
$ret = array();
$error =$_FILES["myfile"]["error"];
if(!is_array($_FILES["myfile"]['name'])) //single file
$fileName = $_FILES["myfile"]["name"];
move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir. $_FILES["myfile"]["name"]);
//echo "<br> Error: ".$_FILES["myfile"]["error"];
$ret[$fileName]= $output_dir.$fileName;
else
$fileCount = count($_FILES["myfile"]['name']);
for($i=0; $i < $fileCount; $i++)
$fileName = $_FILES["myfile"]["name"][$i];
$ret[$fileName]= $output_dir.$fileName;
move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName );
echo json_encode($ret);
【问题讨论】:
停止使用已弃用的mysql_*
库;改用 PDO / MySQLi。另外,是时候学习新的 HTML 编码风格了。
【参考方案1】:
您可以在写入文件之前使用 mkdir 递归地创建文件夹和子文件夹:
mkdir($path, 0777, true);
注意第三个参数,表示递归
查看 mkdir 文档:http://php.net/manual/en/function.mkdir.php
【讨论】:
感谢您的回答。如何将隐藏字段中的数据添加到 ajax 中的现有数据中?【参考方案2】:1) 将 hiddenID 值发送到 ajax 调用
like var hiddenID = $("#hiddenID").val();
将此id传递给ajax调用,在PHP页面中你可以得到$_POST['hiddenID];
然后使用 mkdir 函数 (mkdir($pathtocreate, 0777, true);) 使用 $_POST['hiddenID] 创建一个目录
3) 读取文件名..... http://www.html5rocks.com/en/tutorials/file/dndfiles/
【讨论】:
感谢您对 hiddenID 提出的这个想法。你能告诉我如何将这个 hiddenID 添加到 ajax 中已经存在的数据中吗?以及如何在upload.php 文件中将其读取出来,那就太好了。我的想法已经结束了...... 取一个像 然后使用 jquery 像 $("#hiddenID ").val();以上是关于将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组的主要内容,如果未能解决你的问题,请参考以下文章
PHP 使用 $this->variable 作为类方法参数默认值
将 JavaScript 变量传递给 Flask url_for