【发布时间】:2018-01-12 19:43:26
【问题描述】:
我正在构建一个页面,该页面允许用户输入有关特定设备的数据,并将该设备的图像上传到服务器,以便在其他用户查询该特定设备时显示该图像。设备将通过序列号进行跟踪。
用户输入所有设备信息后,选择图像位置并单击提交....设备数据写入 MySQL db,图像使用设备序列号重命名并存储在名为“uploads”的文件夹中位于站点根目录中。
一切正常!但是,现在我需要开始将图像存储在不同的服务器上,以便我们的 GIS 系统也可以访问它们。
我们在另一台服务器上设置了一个文件夹.... //trxshares/GIS/transformer_pictures.我的 IT 部门设置了一个 IIS 虚拟目录,指向数据输入站点根目录中的 trxshares 文件夹。
这是上传到本地文件夹uploads/的工作代码:
if(isset($_FILES['image']))
{
if($_FILES['image']['name'] != NULL)
{
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size = $_FILES['image']['size'];
$file_tmp = $_FILES['image']['tmp_name'];
$file_type = $_FILES['image']['type'];
$exp = explode(".", $_FILES['image']['name']);
$file_ext = strtolower(end($exp));
$extensions= array("jpg");
if(in_array($file_ext,$extensions)=== false)
$errors[]="extension not allowed, please choose a .jpg file.";
if($file_size > 4096000)
$errors[]='File size must be less than 4 MB';
if(empty($errors)==true)
{
move_uploaded_file($file_tmp,"uploads/".$SerialNo.".".$file_ext);
}
else
print_r($errors);
}
同样,上面的代码完美运行。
在下一个块中,我尝试将文件移动到虚拟目录并得到错误:
if(isset($_FILES['image']))
{
if($_FILES['image']['name'] != NULL)
{
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size = $_FILES['image']['size'];
$file_tmp = $_FILES['image']['tmp_name'];
$file_type = $_FILES['image']['type'];
$exp = explode(".", $_FILES['image']['name']);
$file_ext = strtolower(end($exp));
$extensions= array("jpg");
if(in_array($file_ext,$extensions)=== false)
$errors[]="extension not allowed, please choose a .jpg file.";
if($file_size > 4096000)
$errors[]='File size must be less than 4 MB';
if(empty($errors)==true)
{
move_uploaded_file($file_tmp, $_SERVER['DOCUMENT_ROOT']."\\transformer_pictures\\".$SerialNo.".".$file_ext);
}
else
print_r($errors);
}
并得到这个错误:
警告:move_uploaded_file(C:\inetpub\wwwroot\lusapps\transformer_pictures\1684271793.jpg):无法打开流:C:\inetpub\wwwroot\lusapps\app\power\power-transformers 中没有这样的文件或目录第 398 行的 .php 警告:move_uploaded_file(): Unable to move 'C:\Windows\Temp\phpA27E.tmp' to 'C:\inetpub\wwwroot\lusapps\transformer_pictures\1684271793.jpg' in C:\inetpub\wwwroot \lusapps\app\power\power-transformers.php 在第 398 行*
我似乎无法弄清楚如何正确引用虚拟目录....有什么想法吗?谢谢
【问题讨论】:
-
检查目标文件夹的权限。 php进程可以写入吗?
标签: php iis virtual-directory