Javascript 从目录和会话变量检索图像问题-php
我在从服务器上的目录检索图像时遇到问题,因此主要顺序是:在页面(multiupload.php)中,我添加了输入,允许预览图像,当用户提交时,将创建一个带有会话id的新目录,然后,图像将存储在唯一目录中,页面将被定向到(drag.php)。新加载的页面有一个具有不同div的画布,用于控制附加到该画布的过滤器。我的问题在于从一个页面到另一个页面检索具有指定s_id作为目录名的图像 Q:我是否正确检索会话变量?或者适当地使用它们? 这是multiupload.php的上传脚本的必要片段Javascript 从目录和会话变量检索图像问题-php,javascript,php,jquery,html,canvas,Javascript,Php,Jquery,Html,Canvas,我在从服务器上的目录检索图像时遇到问题,因此主要顺序是:在页面(multiupload.php)中,我添加了输入,允许预览图像,当用户提交时,将创建一个带有会话id的新目录,然后,图像将存储在唯一目录中,页面将被定向到(drag.php)。新加载的页面有一个具有不同div的画布,用于控制附加到该画布的过滤器。我的问题在于从一个页面到另一个页面检索具有指定s_id作为目录名的图像 Q:我是否正确检索会话变量?或者适当地使用它们? 这是multiupload.php的上传脚本的必要片段 <?p
<?php
$dir_id = session_id(md5(uniqid()));
session_start($dir_id);
$path = "uploads/";
$dir = $path.$dir_id;
$path = $path.$dir_id."/";
if (file_exists($dir)) {
system('/bin/rm -rf ' . escapeshellarg($dir));
} else {
mkdir($path);
chmod($path, 0722);
}
$_SESSION["id"] = $dir_id;
$_SESSION["directory"] = "/" . $dir;
$_SESSION["path_name"] = $path;
?>
我定义了目录、整个路径和目录的id。我想在下一页中检索id,但操作不正确
这是drag.php中的检索代码
$realPath = 'uploads/'. echo $_SESSION['id'];
$handle = opendir(dirname(realpath(__FILE__)).$realPath;
while($file = readdir($handle)){
if($file !== '.' && $file !== '..'){
echo '<img src="uploads/'.$file.'" border="0" />';
}
}
$realPath='uploads/'。echo$_会话['id'];
$handle=opendir(dirname(realpath(_文件__))。$realpath;
而($file=readdir($handle)){
如果($file!='.&&$file!='..){
回声';
}
}
我的最终结果是,我希望所有的图像都能被绘制在页面上。现在,我希望它们可以被绘制在任何可见的地方
如果我的问题不清楚,请随意编辑或评论我应该更改的地方。如果您需要更多代码或信息,请告诉我。会话\u start不接受任何参数。它只是放置cookie并读取会话变量。(在$\u会话中公开)。您必须使用会话\u start()在每个页面上都可以读取$\u会话变量。
<?php
$dir_id = session_id(md5(uniqid()));
session_start();
$path = "uploads/";
$dir = $path.$dir_id;
$path = $path.$dir_id."/";
if (file_exists($dir)) {
system('/bin/rm -rf ' . escapeshellarg($dir));
} else {
mkdir($path);
chmod($path, 0722);
}
$_SESSION["id"] = $dir_id;
$_SESSION["directory"] = "/" . $dir;
$_SESSION["path_name"] = $path;
?>
在任何file.php中,您需要获取会话:
<?php
session_start();
$realPath = 'uploads/'.$_SESSION['id'];
$handle = opendir(dirname(realpath(__FILE__)).$realPath;
while($file = readdir($handle)){
if($file !== '.' && $file !== '..'){
echo '<img src="uploads/'.$file.'" border="0" />';
}
}
?>
请将您的代码修改为此代码:
<?php
$dir=$_SESSION['id'];
$realPath = '/uploads/'.$dir;
$handle = opendir(dirname(realpath(__FILE__)).$realPath);
while($file = readdir($handle)){
if($file !== '.' && $file !== '..'){
echo '<img src="'.$realPath.'/'.$file.'" border="0" width="200" />';
}
}
?>
我使用了这个代码,我得到的o/p如下:
这将只提供使用会话变量的目录中的图像文件
<?php
$dir=$_SESSION['id'];
$realPath = '/uploads/'.$dir;
$handle = opendir(dirname(realpath(__FILE__)).$realPath);
while($file = readdir($handle)){
if($file !== '.' && $file !== '..'){
if(fnmatch('*.jpg', $file) || fnmatch('*.png', $file) || fnmatch('*.jpeg', $file)){
echo '<img src="'.$realPath.'/'.$file.'"/>';
}
}
}
?>
我认为这更重要的是指出,您需要从任何要访问会话数据的页面调用session_start()。因此,我写下“在any file.php中,您需要获取会话:”,我错了吗?这是正确的,通常的做法是在每个页面的顶部包含/需要一个公共php文件..类似header.php的内容,并包含session_start()之类的项目。你是对的,你需要在脚本中调用它,然后才能访问它们。你的意思是-建议创建类似头文件的东西,它会自动包含在任何file.php中?是的,它很容易维护单个文件与多个文件。与使用同一个menu.php文件包含HTML菜单系统相同。使工作更轻松使用这一行$realPath='uploads/'。$(会话['id']),而不是$realPath='uploads/'。echo$(会话['id']);优秀的解释器@ApoorvBambarde。