如何在PHP中显示上传文件后的结果

2024-04-14

我有一个将视频上传到服务器的脚本,一切正常,但在视频上传到服务器完成后出现问题 它以数组形式显示(uploads)文件夹中所有上传的文件!

我只想要我刚刚上传的文件的结果,它不显示以前的文件! 我需要 ffmpeg 来提高视频质量

索引.php

<?php
//index.php

?>
<!DOCTYPE html>
<html>
 <head>
  <title>Personal Video Uploader</title>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>        
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/dropzone.css" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/dropzone.js"></script>
  <link rel="stylesheet" href="css/main.css">
 </head>
 <body class="bg-body">
  <div class="container">

   <form action="upload.php" class="dropzone font" id="dropzoneFrom">

   </form>
   
    
   </form>
   <br />

   <div id="preview"></div>

   <br />
  </div>
 </body>
</html>

<script>

$(document).ready(function(){
 
 Dropzone.options.dropzoneFrom = {
  autoProcessQueue: true,
  timeout: 300000,
  acceptedFiles:"video/*",
  init: function(){
   var submitButton = document.querySelector('#submit-all');
   myDropzone = this;
   submitButton.addEventListener("click", function(){
    myDropzone.processQueue();
   });
   this.on("complete", function(){
    if(this.getQueuedFiles().length == 0 && this.getUploadingFiles().length == 0)
    {
     var _this = this;
     _this.removeAllFiles();
    }
    list_image();
   });
  },
 };

 list_image();

 function list_image()
 {
  $.ajax({
   url:"upload.php",
   success:function(data){
    $("#preview").html(data);
   }
  });
 }

 $(document).on('click', '.remove_image', function(){
  var name = $(this).attr('id');
  $.ajax({
   url:"upload.php",
   method:"POST",
   data:{name:name},
   success:function(data)
   {
    list_image();
   }
  })
 });
 
});
</script>

上传.php

    <?php

//upload.php

$folder_name = 'upload/';
$tumb_name = 'thumb/';
$imageext = '.png';

if(!empty($_FILES))
{

 $temp_file = $_FILES['file']['tmp_name'];
 $location = $folder_name . $_FILES['file']['name'];
 move_uploaded_file($temp_file, $location);
 $upload = $_FILES['file']['name'];
 $uploadStr = str_replace(" ", "\ ",$upload);
 $locationStr = str_replace(" ","\ ",$location);
 $cmd  = "ffmpeg -y -i {$locationStr} -ss 00:00:15 -vframes 1 thumb/{$uploadStr}.png 2>&1";
 echo shell_exec($cmd);
}

if(isset($_POST["name"]))
{
 $filename = $folder_name.$_POST["name"];
 $imagename = $thumb_name.$_POST["name"].$imageext;
 unlink($filename);
 unlink($imagename);
}

$result = array();

$files = scandir('upload');

$output = '<div class="row">';

if(false !== $files)
{
 foreach($files as $file)
 {
  if('.' !=  $file && '..' != $file)
  {
   $output .= '
   <a href="/view.php?file='.$file.'" target="_blank"> <img src="thumb/'.$file.'.png" class="img-thumbnail" width="246px" height="138px" style="height:138px;" /></a>
    <button type="button" class="btn btn-link remove_image" id="'.$file.'">Remove</button>
   ';
  }
 }
}
$output .= '</div>';
echo $output;

?>

EDIT:我将示例放在一个数组中,我不需要它,我只想它显示我刚刚上传的下载视频。

EDIT 2 :有些人说输入 $location 它会显示下载的文件,但这不起作用! 我只是尝试了不止一次并且多次使用,没有显示文本为空的地方

这是一个例子

<?php

//upload.php

$folder_name = 'upload/';
$tumb_name = 'thumb/';
$imageext = '.png';

if(!empty($_FILES))
{

 $temp_file = $_FILES['file']['tmp_name'];
 $location = $folder_name . $_FILES['file']['name'];
 move_uploaded_file($temp_file, $location);
 $upload = $_FILES['file']['name'];
 $uploadStr = str_replace(" ", "\ ",$upload);
 $locationStr = str_replace(" ","\ ",$location);
 $cmd  = "ffmpeg -y -i {$locationStr} -ss 00:00:15 -vframes 1 thumb/{$uploadStr}.png 2>&1";
 echo shell_exec($cmd);
}

if(isset($_POST["name"]))
{
 $filename = $folder_name.$_POST["name"];
 $imagename = $thumb_name.$_POST["name"].$imageext;
 unlink($filename);
 unlink($imagename);
}


$output .= 'Successfly file is "'.$location.'"';
echo $output;

?>

Result: 成功飞行的文件是“” 没有名称文件:(

EDIT 3 :

这段代码upload.php 功能不工作

<?php

//upload.php

$folder_name = 'upload/';
$tumb_name = 'thumb/';
$imageext = '.png';

if(!empty($_FILES))
{

 $temp_file = $_FILES['file']['tmp_name'];
 $location = $folder_name . $_FILES['file']['name'];
 move_uploaded_file($temp_file, $location);
 $upload = $_FILES['file']['name'];
 $uploadStr = str_replace(" ", "\ ",$upload);
 $locationStr = str_replace(" ","\ ",$location);
 $cmd  = "ffmpeg -y -i {$locationStr} -ss 00:00:15 -vframes 1 thumb/{$uploadStr}.png 2>&1";
 echo shell_exec($cmd);
}


echo "The file " . $location . " has been uploaded";
// not working
echo "<br>";
echo "The file " . $upload . " has been uploaded";
// not working
echo "<br>";
echo "The file " . $uploadStr . " has been uploaded";
// not working
echo "<br>";
echo "The file " . $locationStr . " has been uploaded";
// not working

?>

这个错误: [2022 年 4 月 23 日 12:31:56 亚洲/利雅得] PHP 注意:未定义变量:位于 /home/prdix/public_html/test/upload.php 第 38 行

第 38 行: echo $location;

关于开发者解决方案 Markus AO

I did the experiment and it is quite good, but dropzone is still missing, because I will upload a large video and the normal upload compresses the video before uploading, here is a picture from my mobile while uploading, but this does not happen with dropzone enter image description here

我也想在 dropzone 中实现这一点,因为这个库不会压缩视频,而是以全尺寸上传。

谢啦兄弟。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在PHP中显示上传文件后的结果 的相关文章

  • 如何从 JSON 响应重定向?

    所以我尝试使用 Flask 和 Javascript 上传器 Dropzone 上传文件并在上传完成后重定向 文件上传正常 但在烧瓶中使用传统的重定向 return redirect http somesite com 不执行任何操作 页面
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • 如何调用 google 的 getBasicProfile() 来仅单击按钮即可登录 google?

    我在我的网站上使用谷歌登录
  • 了解 JavaScript - 资源

    使用 StackOverflow 的微型 Digit Blog 功能进行描述here https stackoverflow com about 我想发布以下我刚刚看到的 我觉得很有趣的谷歌技术谈话视频 我一直在理解 javascript
  • 如何更改自动完成中的结果过滤器?

    我不想进行字面匹配 而是想通过正则表达式选择结果 我可以覆盖自动完成的默认行为来完成此任务还是需要替代结构 有一个内置的方法可以做到这一点 只需提供一个函数source http jqueryui com demos autocomplet
  • html css 下拉菜单

    这是我第一次在 Stack Overflow 上发帖 我不熟悉论坛发帖规定 所以请让我知道我做错了什么 我在论坛中研究过这个问题 但我所遇到的一切都没有给我明确的答案 我试图从 新闻 元素创建一个下拉菜单 但在运行代码时我从未得到任何可见的
  • 在 Fabric.js 中按宽度/高度在另一个画布对象内居中和缩放画布对象

    Goal 将一个对象 水平和垂直 置于另一个对象 矩形或组 的中心canvas via Fabric js或者通过Javascript保持原始对象的长宽比相同 但也不超过父对象的宽度 高度比例 父对象 矩形或组 不会居中于canvas元素
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • 计算文本选择的 xy 位置

    我正在尝试使用 DOM 元素创建自己的文本选择 是的 我的意思是当您在此元素中选择文本时 您会在文本后面看到蓝色背景 这个想法是停止默认行为 蓝色 并使用我自己的元素来完成工作 方法是找到选择的 xy 位置 然后放置绝对定位的元素 我希望能
  • 如何在html中制作多行类型的文本框?

  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • php 表单提交 - Q2

    我对这个虚拟问题感到抱歉 这是我的简单 PHP 表单 其中包含两个 SQL 表和 ADD 提交 按钮 我希望将人员从 Test1 转移到 Test2 很多事情都很好 只有提交按钮不起作用 因此 Test2 表没有反馈 Revised 现在提
  • 元素和 svg 形状之间的白线

    大家好 我正在使用由 shapedivider 生成的 svg 整形器 您可以看到 有一条白线 我不知道为什么它在那里以及如何删除它 请你帮助我好吗 有形状分隔符的代码 custom shape divider bottom 1640714
  • HTML 输入 - 名称与 ID [重复]

    这个问题在这里已经有答案了 使用 HTML 时
  • mozilla pdf.js 没有全视图

    我喜欢这个 pdf 查看器https github com mozilla pdf js https github com mozilla pdf js Demo http mozilla github com pdf js web vie
  • 为什么 PHP 中不允许“传统”类型提示?

    刚刚发现类型提示 http php net manual en language oop5 typehinting phpPHP 中允许 但不适用于整数 字符串 布尔值或浮点数 为什么 PHP 不允许对整数 字符串等类型进行类型提示 从 P
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • Flowtype 属性“msg”缺失为 null 或未定义

    我发现 Flow 很难用 我明白那个Array find可以返回或未定义 因此 通过阅读以下内容 github Array find on Array 引发 https github com facebook flow issues 351
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu

随机推荐

  • VBA Excel 简单错误处理

    我尽可能多地上网查看 除了微软支持网站 该网站由于某种原因在工作中被屏蔽 我试图简单地跳过一个错误 我在这里编写的代码经过简化 但应该以相同的方式工作 我的代码应该做什么 我的一名潜艇在循环中创建形状并命名它们 btn 1 btn 2 等
  • 无法在VS2010中调试.NET框架代码

    我正在尝试使用公共可用符号调试 NET 代码 我按照说明设置 在 工具 gt 选项 gt 调试 中 我选中了 启用 NET框架源代码步进 禁用了 仅启用我的代码 在 工具 gt 选项 gt 调试 gt 符号 中加载所有符号 我检查了这个文件
  • 图像特定区域的可点击链接

    我有一张地图图像 它在地图上有特定的区域名称 但它只是一个 PNG 图像 我希望用户能够单击地图上的名称并被带到特定的面板 例如 地图上有三个名字 如果用户单击X 100 Y 300左右 他们会被带到一个面板 而如果他们点击X 400 Y
  • 具有常量(真)值的条件运算符?

    我正在查看 OpenSSL 中使用的一些预处理器宏 我发现了以下内容crypto stack safestack h define CHECKED STACK OF type p STACK 1 p STACK OF type 0 defi
  • 在 Windows 中,如何将单个文本文件中的多行合并为一行?

    我有多个遵循此格式的标准文本文件 每个文件中的行数不同 Line1 Line2 Line3 Line4 我想将每一行合并为一行 每组字符之间有一个空格 因此文本文件将如下所示 Line1 Line2 Line3 Line3 等等 由于每个文
  • Blueprism:如何在计算阶段使用替换功能?

    我正在使用 BluePrism 从应用程序中读取文本 文本结构如下 数字因情况而异 请注意您的订单参考号 525 我需要能够从文本中提取数字 看计算阶段 有一个替换函数 replace text pattern new text 我想使用此
  • python 路径 django

    我怎样才能添加一些东西到我的 Pythonpath 文件到底位于哪里 我必须更改以添加到我的 pythonpath 中 我到底要添加什么到我的 Pythonpath 中 如果Python调用 Library Frameworks Pytho
  • 从 python 3.2 中的文件的“Content-Length”值获取文件大小

    我想要得到Content Length来自元变量的值 我需要获取要下载的文件的大小 但最后一行返回错误 HTTPMessage对象没有属性getheaders import urllib request import http client
  • 如何将令牌存储在Android的本地或会话存储中?

    我正在创建一个与 SOAP Web 服务交互以从数据库获取数据的应用程序 当用户成功登录时 它会通过网络服务生成一个令牌 稍后在其他活动中调用 Web 服务方法时将需要此令牌 我的问题是 如何在需要时将该令牌传递给下一个活动并维护它直到用户
  • 如何将 HTML 和 CSS 添加到 PDF 中 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 HTML 不是 XHTML 文档 可以在 Firefox 3 和 IE 7 中很好地呈现 它使
  • x, = ... - 这个尾随逗号是逗号运算符吗?

    我不明白变量后面的逗号是什么lines means http matplotlib org examples animation simple anim html http matplotlib org examples animation
  • 使用 jQuery 获取所选选项 id

    我正在尝试使用 jQuery 根据所选选项发出 ajax 请求 有没有一种简单的方法来检索所选的选项 ID 例如 id2 使用 jQuery
  • 删除图像c#的圆形透明部分

    我正在位图上创建一个圆圈 但想在其中有一个洞 经过半个小时的搜索 我只找到了将图像裁剪为圆形的方法 困难的是 中间的孔应该像图像的其余部分一样透明 This https i stack imgur com Avdrv png是基础图像并且黄
  • JavaFX SimpleObjectProperty 与 SimpleTProperty

    使用有什么区别 简单字符串属性 vs SimpleObjectProperty or 简单整数属性 vs SimpleObjectProperty 除了返回包装器而不是原始类型之外 无论如何它都可以自动转换 API 为特定类型添加了附加功能
  • 如何设置 scons 系统包含路径

    使用 scons 我可以轻松设置我的包含路径 env Append CPPPATH foo 这传递了标志 Ifoo to gcc 不过 我正在尝试在启用大量警告的情况下进行编译 特别是与 env Append CPPFLAGS Werror
  • 谷歌地图 v3 重复标记 - 使用数组来管理标记但仍然得到重复项

    我不明白 我有一个数组来管理我添加到地图中的标记 当我更新集合时 即使我的标记数组中仍然只有正确数量的标记 标记也会重复 我确信这对我来说是一个非常简单和愚蠢的错误 但我没有看到它 m viewMarkers function data a
  • getUidTxBytes(int uid) 在 android 6.0 中始终返回 0

    我正在尝试获取所有应用程序的网络流量统计信息 我只是打印设备中每个应用程序的总网络流量 该代码在 android 4 4 和 5 1 设备中运行良好 但在 android 6 0 设备中它始终为所有应用程序返回 0 任何人都可以告诉我为什么
  • 从父级构建 Maven 模块,无需父级引用

    我已经为几个模块建立了一个反应器构建 效果很好 我的子模块没有引用父 pom xml 当我将子模块用于多个产品时 存在多个父 pom 因此无论如何我都无法将父引用放在子模块中 现在我希望父 pom 能够更改子模块中的一些设置 在不引用父 p
  • Ruby:无法解析在 OS X 中导出为 CSV 的 Excel 文件

    我正在使用 Ruby 的 CSV 库来解析一些 CSV 我有一个看似格式良好的 CSV 文件 是通过将 Excel 文件导出为 CSV 来创建的 However CSV open filename r 导致CSV IllegalFormat
  • 如何在PHP中显示上传文件后的结果

    我有一个将视频上传到服务器的脚本 一切正常 但在视频上传到服务器完成后出现问题 它以数组形式显示 uploads 文件夹中所有上传的文件 我只想要我刚刚上传的文件的结果 它不显示以前的文件 我需要 ffmpeg 来提高视频质量 索引 php