当前位置: 首页 > 知识库问答 >
问题:

$\u FILES字段“tmp\u name”在上没有值。JPG文件扩展名

杜俊晤
2023-03-14

我正在做一个上传脚本时,我测试的图像文件与此扩展。JPG,我不知道jpg和jpeg有什么区别,但是$_FILES似乎不认识这个文件类型。

我读过几个线程,在mime类型中,$\u文件不太可靠,所以我决定使用php的mime类型函数mime\u content\u type(),php的getimagesize()pathinfo(),虽然pathinfo返回文件名和类型,但我需要不存在的文件路径,所有函数都以$\u FILES['file']['tmp\u name']作为参数传递。

所以,当我决定上传一个图像文件,例如sample时,这个问题就出现了。JPG,我想这些文件大部分都是从相机里拍出来的

主要问题是$_FILES中的字段['tmp_name']没有值。JPG将被上传。

任何遇到过这个问题的人,请分享你的解决方案或“你是怎么做到的”之类的东西。

共有3个答案

商冠玉
2023-03-14

因为我的评分太低,所以发布答案。

记得在php中设置最大文件大小上限后重新启动服务器。伊尼。我花了几个小时在这个问题上,认为这不是一个文件大小的问题,同时我忘了重新启动。重启后一切正常。

我希望这能帮助别人。

邬楚青
2023-03-14

检查您的php.ini,特别是这个设置

; Maximum allowed size for uploaded files.
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 6M

或者在Apache配置中这样做:

<Directory "/var/www/vhosts/path/to/your/directory/import/">
    php_value post_max_size 6M
    php_value upload_max_filesize 6M
</Directory>

我还想说,如果你上传的文件比你的PHP文件大,PHP不会在错误日志中报告错误,这是很糟糕的。iniupload\u max\u filesize设置。例如,如果你上传一个6MB的文件,而你将它设置为2M(我认为这是默认值)。

谷梁德容
2023-03-14

如果$\u FILES[$field]['tmp\u name']为空,则该文件尚未上载。您应该查看$\u文件[$field]['error']以了解原因。

据我所知,$\u FILES[]中的mime类型是由浏览器提供的。

更新:下面是一些处理所有文件上载错误的封装代码:

        $message = 'Error uploading file';
        switch( $_FILES['newfile']['error'] ) {
            case UPLOAD_ERR_OK:
                $message = false;;
                break;
            case UPLOAD_ERR_INI_SIZE:
            case UPLOAD_ERR_FORM_SIZE:
                $message .= ' - file too large (limit of '.get_max_upload().' bytes).';
                break;
            case UPLOAD_ERR_PARTIAL:
                $message .= ' - file upload was not completed.';
                break;
            case UPLOAD_ERR_NO_FILE:
                $message .= ' - zero-length file uploaded.';
                break;
            default:
                $message .= ' - internal error #'.$_FILES['newfile']['error'];
                break;
        }
        if( !$message ) {
            if( !is_uploaded_file($_FILES['newfile']['tmp_name']) ) {
                $message = 'Error uploading file - unknown error.';
            } else {
                // Let's see if we can move the file...
                $dest .= '/'.$this_file;
                if( !move_uploaded_file($_FILES['newfile']['tmp_name'], $dest) ) { // No error supporession so we can see the underlying error.
                    $message = 'Error uploading file - could not save upload (this will probably be a permissions problem in '.$dest.')';
                } else {
                    $message = 'File uploaded okay.';
                }
            }
        }
 类似资料:
  • 为了扩展现有字段,您必须将内置字段(例如FieldTextInput,FieldColour)子类化,然后修改其中的一部分以满足您的需求。 您可以修改的字段的某些部分是: 它的编辑器 它的块显示 它显示的文本 如果要创建不需要任何内置字段行为的自定义字段,则应将Field子类化。 常用扩展 大多数自定义字段扩展了以下三种类型之一: 文本输入 如果希望用户在字段中键入内容,则应扩展FieldText

  • 问题内容: 为了帮助实现这一点,下面的代码在文件夹中查找txt文件,以及如何使其列出不含扩展名的文件名。这是代码: 如您所见,就在这里: 这是将文件列表与myname的值进行比较,因此您可以帮助比较表和myName和list [i](不考虑文件扩展名)的情况,例如程序显示该文件夹具有以下布局: indeks.html hi.html,用户输入了indeks.html,比较不错,但是如何创建一个代码

  • 在我的公司,我们的任务是实现一个可自动扩展的文本字段。由于默认情况下不提供此功能,我们必须从头开始开发它。web上有许多可能性,如何实现它,但没有人为as工作,所以我们决定将代码放在so上,以便其他开发人员也可以使用它。由于无法展开文本字段,因此解决方案基于文本区域: 我希望它能帮助你:)

  • 问题内容: 我正在将图像上传到servlet。通过检查文件头中的幻数,仅在服务器端验证上传的文件是否为图像。在将表单提交给Servlet之前,有什么方法可以在客户端验证扩展?我一按回车就开始上传。 我在客户端使用Javascript和jQuery。 更新: 我最终通过服务器端验证结束了工作,该验证读取字节,如果不是图像,则拒绝上传。 问题答案: 可以仅检查文件扩展名,但是用户可以轻松地将virus

  • 场景:我有一个jasper报告,在详细信息带内有多个文本字段。每个文本字段都具有以下属性: 位置:浮动 伸展类型:相对于最高对象 详细信息溢出时打印:false 溢出伸展:true null 问题:我希望所有的文本字段能够延伸在下一页以及。如果我使用属性'print When Detail overflows:true',那么这将导致文本字段“重印”,数据重复。那不是我的本意。我希望能够将文本字段

  • 我不明白为什么我应用程序会删除异常“字段'ID_Employeer'没有默认值”。 是我的主键,当我试图将任何信息保存到我的数据库时,我得到了这个异常,但是,当我只是试图从DB读取信息时,它是正常的。 我读了关于StackOverflow的主题,但我仍然不明白我应用程序中的答案。我正在使用Hibernate5.2.11。 我的: 我的冬眠: 下一个CharacterInfo类 主类 最后例外