我有一个PHP视频上传脚本,该脚本仅接受.mp4文件。 PHP版本是7。这是我的表单(简体):
<form method="post" action="something.php" enctype="multipart/form-data">
<input type="file" name="video">
<input type="submit" name="submit">
</form>
这是PHP(简体):
$video = $_FILES["video"];
var_dump($video);
假设选择上传的文件是视频,它是mp4,大约需要2到3分钟。还要假设我们检查是否确实单击了提交按钮。
这是PHP的输出:
array (size=5)
'name' => string 'Sample Video.mp4' (length=16)
'type' => string '' (length=0)
'tmp_name' => string '' (length=0)
'error' => int 1
'size' => int 0
我有多个示例视频文件,所有文件都以相同的错误结尾。为什么PHP无法获取文件?通常,我希望tmp_name
应该有一个我可以通过php读取的文件。
编辑:我使用的是PHP 7,这是在Mac OSX高山脉上的localhost。
答案 0 :(得分:0)
问题出在Web服务器设置上。我将代码从appendChild
移到了实际的域。那为我解决了这个问题。之后,我的php上传代码就可以了。
答案 1 :(得分:-1)
我认为您需要进行准备,请检查该文件是否已上传
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
} ?>
所以您知道文件是否上传
获取该代码