javascript - WinSCP 刷新 PHP 代码库?如何使用 XMLHttpRequest 发送文件后刷新服务器

标签 javascript php ajax xmlhttprequest

function upload(blobOrFile) {
  var xhr = new XMLHttpRequest();
  xhr.open('POST', './upload.php', true);
  xhr.onload = function(e) {};
  // Listen to the upload progress.
  var progressBar = document.querySelector('progress');
  xhr.upload.onprogress = function(e) {
    if (e.lengthComputable) {
      progressBar.value = (e.loaded / e.total) * 100;
      progressBar.textContent = progressBar.value; // Fallback for unsupported browsers.
    }
  };

  xhr.send(blobOrFile);
}

我正在使用上面的 XMLHttpRequest 向服务器发送文件 - 文件大小为 200KB - 400KB - 文件本质上是立即在服务器上 - 但是,为了立即查看文件,我使用了 WinSCP ftp 软件刷新功能。

是否有脚本或其他方法可以自动执行此操作?我需要另一个 php 脚本来尽快访问这些上传的文件并处理它们?现在,除非我手动刷新(使用 WinSCP 刷新功能),否则这些文件对我的 php 脚本不可见。

更新: 我在 2 个不同的地点有 2 台计算机。两台计算机都使用 upload.php 脚本发送文件。只有在两次上传完成后,我才能运行第二个 php 脚本。这就是阻止我在 upload.php 中包含第二个 php 脚本的原因。在不使用 WinSCP 刷新功能的情况下如何解决此问题?下面是upload.php代码:

$fp = fopen( 'savedfile.wav', 'wb' );
fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
fclose( $fp );

如果 WinSCP 有刷新服务器的功能,那么可以在上面的 upload.php 中或在“xhr.open('POST', './upload.php', true”之后包含一个代码库);”?它是什么?更新 2:我在上面的脚本中添加了以下行,希望它可以刷新 - 它没有刷新?

exec("touch -a './path/' . $filename");

最佳答案

  xhr.open('POST', './upload.php', true);

当您向 ./upload.php 发出请求时,您可以在该 PHP 脚本中处理上传的文件。

如果您打算在 WinSCP ftp 软件中刷新那些上传的文件,那么 PHP 脚本将无法帮助您自动刷新它。需要手动刷新。因为 ftp 工具没有自动更新文件列表的套接字功能。您需要手动刷新它们。

关于javascript - WinSCP 刷新 PHP 代码库?如何使用 XMLHttpRequest 发送文件后刷新服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574288/

相关文章:

javascript - Safari 表单验证仅在第二次单击按钮时有效,但在 IE 第一次单击时工作正常

php - Codeigniter 根据 id 返回用户名

php - 为什么这个ajax表单不插入记录?

javascript - Ajax 成功后触发第二个 Javascript 文件

javascript - 在sequelize中,如何选择与多行的不同值匹配的记录?

javascript - HTML5 Canvas vs. SVG vs. div

php - 无法在 php 中设置 header 并从 cpanel 发送电子邮件

javascript - 在函数和对象之外设置变量

javascript - 使用 JEST 对 Vue.js 路由器进行单元测试 - 如何模拟页面?

php - 我无法更新数据库中的数据 Codeigniter