Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:文件上载错误-无法在第0行的未知位置创建临时文件_Php_Javascript_File Upload_Image Uploading - Fatal编程技术网

Php 警告:文件上载错误-无法在第0行的未知位置创建临时文件

Php 警告:文件上载错误-无法在第0行的未知位置创建临时文件,php,javascript,file-upload,image-uploading,Php,Javascript,File Upload,Image Uploading,每次尝试上载文件时,我都会遇到以下错误 “警告:文件上载错误-无法在第0行的未知位置创建临时文件” 这是我的HTML表单 <form action="./inventory_list.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post"> <table width="625" border="1" cellpadding="5"> <tr> <td

每次尝试上载文件时,我都会遇到以下错误

“警告:文件上载错误-无法在第0行的未知位置创建临时文件”

这是我的HTML表单

<form action="./inventory_list.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post">
<table width="625" border="1" cellpadding="5">
  <tr>
    <td width="84">Product Name</td>
    <td width="399"><input type="text" name="product_name" id="product_name"></td>
  </tr>
  <tr>
    <td>Product Price</td>
    <td><label for="textfield2">Rs:</label>
      <input type="text" name="price" id="price"></td>
  </tr>
  <tr>
    <td>Category</td>
    <td><select name="category" id="category">
        <option value="" selected="selected"></option>
        <option value="Bedroom ">Bedroom </option>
        <option value="Living">Living room</option>
        <option value="Dining">Dining</option>
      </select></td>
  </tr>
  <tr>
    <td>Sub - Category</td>
    <td><select name="subcategory" id="subcategory">
        <option value="" selected="selected"></option>
        <option value="dinet">Dining tables</option>
        <option value="shoe">shoe racks</option>
        <option value="wardrobe">wardrobes</option>
        <option value="sofa">sofa</option>
      </select></td>
  </tr>
  <tr>
    <td>Product Details</td>
    <td><textarea name="details" cols="50" rows="10" id="details"></textarea></td>
  </tr>
  <tr>
    <td>Product Image</td>
    <td><label>
        <input type="file" name="fileField" id="fileField"/>
      </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="button" id="button" value="Add this Item now"></td>
  </tr>
</table>
</br>
</form>
我正在尝试在本地主机上上载, 测试服务器:XAMPP, 操作系统:Mac10.8


我很长一段时间都在坚持这一点,我尝试了很多东西,但都没有效果

在../inventory\u images/$newname中使用双引号

换行

move_uploaded_file($_FILES['fileField']['tmp_name'],'../inventory_images/$newname');
作为

注:

在带有单引号的php中,$newname将显示为字符串


要显示变量的值,请使用双引号,可能是/tmp目录问题。检查/tmp是否具有正确的访问权限和足够的空间大小

更改“上载”目录的权限。在将文件移动到web服务器之前,您需要授予web服务器访问权限

将上载文件夹权限“
只读
”更改为“
读写

读这个,也读这个。它指导您如何更改文件权限。

在终端类型中:

chmod-R 777/您的/上传/文件夹

通过执行以下代码,您可以知道php上载文件的文件夹:

$tmp_dir = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
die($tmp_dir);
在我的例子中,我得到了
/var/…
,所以当我设置777权限时,我没有得到任何错误

编辑


将777设置为
/var
是危险的,因此您只能将其设置为php上载文件的文件夹(您可以在上面购买代码)

您没有说明您的平台是什么,但如果它是Fedora(17+)的更高版本,则服务文件中的PrivateTmp=true设置可能会导致此问题。在/etc中创建PrivateTmp=false的服务文件至少是解决此问题的一种方法,尽管它涉及回滚安全功能。

您应该检查php.ini并查找“upload\u tmp\u dir”选项。默认为空。之后,检查tmp目录的权限。如果您想知道服务器正在使用什么upload_tmp_dir,只需使用这段代码即可

$tmp_dir = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();
die($tmp_dir);

最后,在一个终端外壳中,您可以键入:chmod-R 777“your_tmp_upload_dir”

从WordPress上载文件时,我遇到了相同的错误。我在apache
错误日志文件中发现了这个错误:

“PHP警告:文件上载错误-无法创建临时文件 “未知”

我修正了这个错误,在
/etc/php.ini
中注释掉了
upload\u tmp\u dir
上传\u tmp\u目录
设置为
/tmp
。我还设置了
date.timezone
。重新启动服务器后,我可以从WordPress上传媒体文件


php似乎没有写入
/tmp
文件夹的权限。

在我的例子中,这是由于从控制台而不是从服务运行httpd.exe Apache服务器造成的

如果你不知道它是什么,那就是SeLinux。它在某些发行版(如CentOS)中默认启用

检查是否已运行SELinux:

sestatus
如果启用了SELinux,请使用
chcon
命令修复您的权限

这只是
nginx
的一个示例:

chcon -R -h -t httpd_sys_script_rw_t /usr/share/nginx/tmp
chown -R nginx:nginx /usr/share/nginx/tmp
chmod -R ug+rw /usr/share/nginx/tmp

需要将chroot中的tmp dir、upload dir设置为/tmp not full path。

对于我来说,由于服务器上缺少inode,这个问题表现出来:

df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda1       512K  512K     0  100% /  
使用以下方法识别罪犯目录:
并删除了不需要的文件。

如果现有的答案都不起作用,我遇到的问题是Windows文件夹限制为65560个项目。清除文件夹后,它开始重新工作

  • 在php.ini中
    open\u basedir=/tmp:/rootdir
    重新启动apache:
    systemctl重新启动apache2
  • tmp具有完全访问权限:
    chmod 777/tmp
  • 文件文件夹应具有完全权限:
    chmod-Rf a+x站点/default/Files

  • 在WP服务器上安装外部磁盘时,我遇到了与
    /tmp
    相同的问题。我还看到一些文章建议完全
    /tmp
    清理(通过
    rm-rf/tmp/*
    )可能会导致类似的情况。 我花了一段时间才弄明白如何修复它,因为主要的可疑对象是
    wp config.php
    php.ini
    。但事实证明,这些都是骗人的,不设置
    WP_TEMP_DIR
    或创建自定义的
    php.ini
    (我的图像只有
    php.ini开发
    php.ini制作
    )是完全可以的。Wordpress有合理的默认行为来识别临时目录


    在操作任何配置之前,请确保您的
    /tmp
    目录完好无损,并且没有任何异常(例如不同的文件系统、符号链接等)。

    最近在Laravel和Wordpress(php 7.3版)中工作时,我遇到了此错误“文件上载错误-无法在第0行的未知位置创建临时文件”

    对我有效的解决方案是。希望这有助于任何人面对这样的问题

    拉维尔
  • 在项目根文件夹中创建tmp文件夹。确保已正确设置其写入权限
  • 在公用文件夹中创建php.ini文件
  • Wordpress
  • 在项目根文件夹中创建tmp文件夹。确保已正确设置其写入权限
  • 在wp_admin文件夹中创建php.ini文件
  • 除了其他ini设置之外,在php.ini中添加以下行

    上传\u tmp\u dir=on

    upload_tmp_dir=“/path/to/tmp/folder”

    这里的路径类似于/home/cpanel username/public\u html/folder/project/tmp

    注:如果您在拉威尔工作。。如果要在存储文件夹中存储文件,请不要忘记链接存储文件夹。为此,请在终端运行以下命令


    php artisan storage:link

    您在/tmp(或与之相当的MAC)中有多少可用空间?权限呢?web服务器用户是否有写入权限?@Mike我如何找到它?请尝试
    ls-ld/tmp
    查找权限。那你想想是什么
    sestatus
    
    chcon -R -h -t httpd_sys_script_rw_t /usr/share/nginx/tmp
    chown -R nginx:nginx /usr/share/nginx/tmp
    chmod -R ug+rw /usr/share/nginx/tmp
    
    df -ih
    Filesystem     Inodes IUsed IFree IUse% Mounted on
    /dev/xvda1       512K  512K     0  100% /