- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在将我的网站从共享主机迁移到 VPS。在我的 VPS 上进行测试时,我发现突然间我无法再通过网络表单上传文件了。
错误:警告:move_uploaded_file(/uploads/logoklein.jpg):无法打开流:/var/www/vhosts/denkproducties.nl/httpdocs/denkproducties/upload.php 中第 26 行警告中没有这样的文件或目录警告:move_uploaded_file (): 无法在第 26 行的/var/www/vhosts/denkproducties.nl/httpdocs/denkproducties/upload.php 中将“/tmp/php01nhmx”移动到“/uploads/logoklein.jpg”
SO 上有很多关于此的问题,它们几乎都涉及正确设置权限。我将 TMP 和上传目录修改为 0777(不寒而栗),但无济于事。我知道 0777 不是明智之举,但我想确保这不是这些文件夹的权限问题。
由于唯一改变的是 VPS,我认为问题一定出在服务器上。我想也许网络服务器正在以“无人”身份运行,所以它无法访问 tmp 文件夹。我跑了:
ps aux | grpe httpd
这告诉我:
root 27371 0.0 2.3 340860 24726 ? SNs 12:57 0:00 /usr/sbin/httpd
apache 27372 0.0 0.9 240994 9820 ? SN 12:57 0:00 /usr/sbin/httpd
apache 27373 0.0 1.6 341671 16700 ? SN 12:57 0:00 /usr/sbin/httpd
apache 27374 0.0 1.6 341671 16700 ? SN 12:57 0:00 /usr/sbin/httpd
apache 27375 0.0 1.6 341671 16700 ? SN 12:57 0:00 /usr/sbin/httpd
apache 27376 0.0 1.6 341671 16700 ? SN 12:57 0:00 /usr/sbin/httpd
apache 27377 0.0 1.6 341671 16700 ? SN 12:57 0:00 /usr/sbin/httpd
apache 27378 0.0 1.6 341671 16700 ? SN 12:57 0:00 /usr/sbin/httpd
root 27817 0.0 0.0 103244 824 tty1 S+ 13:40 0:00 grep httpd
顺便说一句,我的服务器正在运行 fCGI。
为了完整起见,我制作了一个带有网络表单的小型上传脚本:
$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // These will be the types of file that will pass the validation. $max_filesize = 1024000; // Maximum filesize in BYTES (currently 1MB). $upload_path = '/uploads/'; // The place the files will be uploaded to (currently a 'uploads' directory). $filename = $_FILES['userfile']['name']; // Get the name of the file (including file extension). $ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // Get the extension from the filename. // Check if the filetype is allowed, if not DIE and inform the user. if(!in_array($ext,$allowed_filetypes)) die('The file you attempted to upload is not allowed.'); // Now check the filesize, if it is too large then DIE and inform the user. if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize) die('The file you attempted to upload is too large.'); // Check if we can upload to the specified path, if not DIE and inform the user. //if(!is_writable($upload_path)) // die('You cannot upload to '. $upload_path .'the specified directory, please CHMOD it to 777.'); // Upload the file to your specified path. if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename)){ echo 'Your file upload was successful, view the file here'; // It worked. } else { echo 'There was an error during the file upload. Please try again.'; // It failed :(. }
我在这里错过了什么?
最佳答案
Louis Huppenbauer 在评论中对我的类似问题给出了正确的答案。
使用相对路径是行不通的,它需要一个完整路径。尝试将/uploads/更改为主机的完整目录,例如:D:\InetPub\Vhosts\website.com\website2.com\uploads\
关于php - move_uploaded_file 失败但权限似乎正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522308/
脚本: Image uploaded successfully!.'; } else {//if file was not moved. ech
我正在网站上工作,希望用户能够上传文件。所以我正在尝试学习如何做到这一点。经过研究,它说我必须使用函数move_uploaded_file()。我写的代码与示例中的代码一样(更改数据),但是无法正常工
这是我的表格 Admin's Area sponseres list +Add new Sponser &nb
我有一个免费托管网站 - 000webhost.com,它允许您上传图片。 但是,当我尝试上传图片时,出现以下错误: 警告:move_uploaded_file(images/SmallSmileyF
我有一个免费托管网站 - 000webhost.com,它允许您上传图片。 但是,当我尝试上传图片时,出现以下错误: 警告:move_uploaded_file(images/SmallSmileyF
我正在使用带有 mysql 的 wamp 服务器并添加了以下代码 但它没有将文件插入数据库它在数据库中创建名称,在 wamp 文件夹中创建 tmp 文件,但没有将其移动到所需目录 看代码
大家。我在让 PHP 将文件移动到目录中时遇到问题。 mkdir 在创建目录时工作得很好,并且 mysql 表正在插入所有文件。不过,move_uploaded_file 步骤无法正常工作。
我的代码可以成功上传图像。但问题是它无法显示上传的图像。我检查了 html 源 View 中的图像路径输出是否正确,但图像直到不显示。我认为这是一个文件权限问题。我如何上传这些具有读写完全权限的图像,
我正在尝试创建图像 uploader ,但在将图像保存到文件夹中时遇到问题。该文件夹应该位于名为 images 的目录的根目录中吗?如果是这样,当我使用 move_uploaded_file 代码时,
我正在尝试将文件上传到图像文件夹,并将目录路径插入 mysql 数据库。 这是我的 HTML 表单 New Facility ...
我目前有以下内容: if (in_array($_FILES['userfile']['type'], $mimeTypes)) { $target_path = "./uploa
我正在尝试动态上传图片。 HTML 代码是: Select Picture " name="pic"> After I write the following
我正在将我的网站从共享主机迁移到 VPS。在我的 VPS 上进行测试时,我发现突然间我无法再通过网络表单上传文件了。 错误:警告:move_uploaded_file(/uploads/logokle
在 LEMP(Linux CentOS、Nginx、MariaDB、PHP)服务器上,/etc/php.ini 文件具有以下内容。 file_uploads = on upload_tmp_dir =
我一直在编写一个 php 脚本,它创建一个文件夹并将发布的图像保存在创建的文件夹中,文件夹被创建,但图像我没有保存。 下面是脚本: if (isset($_FILES['images'])) {
您好,我正在尝试将图像上传到我的数据库和文件夹以及我表单中的其他元素,一切正常,但我无法让文件出现在上传文件夹中。这是我的代码: if(isset($_POST['submit'])){ //
我正在尝试上传文件,但我的浏览器出现以下错误: Warning move_uploaded_file(public/upload/udesignwptheme138.zip) [function.m
我正在使用下面的脚本,因此用户可以上传他们的个人资料图片。第一次上传图像时(当该位置不存在图像时)效果很好。但是,如果图像已经存在于路径中(如果用户尝试更改个人资料图片),新图像将不会替换旧图像。我确
快速提问 我正在尝试将上传的文件移动到根目录之外的/opt/ffencoderd/data/media 目录,但我得到文件不存在。如果我在同一文件中使用 exec() 在/usr/bin/clamsc
我有 PHP 脚本 (testupload.php): "; if(move_uploaded_file($_FILES['frag3']['name'], $target_path)) {
我是一名优秀的程序员,十分优秀!