IIS服务器上的PHP文件上载

时间:2016-03-25 02:17:14

标签: php iis

我正在尝试在运行IIS 8和PHP 5.6的Win 2012 Server上创建上传脚本。我们无法运行PHP错误日志,这是一个很大的问题因为它阻碍了我们排除故障的能力,所以我想我是否有任何在Windows服务器上有PHP经验的人可能会帮忙。

我不喜欢在IIS上运行PHP,但在这种情况下我别无选择,所以请不要火焰。我们在LAMP堆栈上开发,因为我们没有可用的WIMP堆栈,当我们尝试迁移时我们取得了很大的成功但是上传脚本失败了所以我将在这里发布相关部分,如果有人可以伸出援助之手会很棒的。

如果我是白痴,白痴等我道歉。

	 // File Variables
	$_FILES["image"]["name"] = date("Y-m-d-H-i-s").
	'.png';
	$filename = $_FILES["image"]["name"];

	 //Path Variables
	$target_dir = "../uploads/";
	$target_path = $target_dir.$_FILES["image"]["name"];


	 // Upload
	if (move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) {
	  $actual_link = "http://".$_SERVER[HTTP_HOST].
	  "/uploads/".$filename;
	  $myMessage. = '<br/><img src="'.$actual_link.
	  '" width="300" height="224" /><br/>';
	}

我感谢任何帮助或指导。谢谢!

1 个答案:

答案 0 :(得分:2)

首先确保在php.ini safe_mode = Off中设置display_errors或在代码开头添加以下行

<?php
ini_set("display_errors", 1);
ini_set('error_reporting', E_ALL);
?>

Windows Server 2012 R2 and IIS 8.5 with PHP Version 5.6

我遇到了同样的问题

我尝试了一些我能在互联网上找到的东西,但我很无奈。我试图将用户"IIS_IUSRS"的权限授予“C:\ Wdinwos \ Temp”文件夹,该文件夹在php.ini中配置为upload_tmp_dir以及我上传文件/图像的文件夹。这没用了

然后我在我的IIS Authentication -> Anonymous Authentication中找到了"IUSR"。然后我将这个用户添加到“C:\ Windows \ Temp”和我上传文件/图像的文件夹,它就可以了。