-1

到目前为止,我有第一个插入表格的代码,然后

 if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'][$key], $tp)) {   }

我正在尝试在实际文件上传处理程序之外读取插入的记录,因为上传正在使用 javascript 进行。似乎只有在文件上传后才插入记录。

如何通过允许写入 mysql 然后启动上传进度来防止这种情况。

对于上传大文件很有用,我试图让人们在文件上传时设置上传文件的信息,使用upload_progress_key等用php 5.4开发了一个漂亮的进度条,但问题是我无法了解如果文件信息在数据库中以允许编辑用户设置的自定义参数。

感谢您在这里的第一次投反对票,谢谢。

这就是我所做的:

mysql_query("INSERT INTO TABLE VALUES VALUES");

到目前为止很棒,

现在

move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $dest);

问题是在尝试读取 700mb 文件时正在上传 file_upload.php

read.php 内容:

mysql_query("SELECT * FROM table WHERE values="values");

返回 0

直到上传完全完成,现在它返回 1。

那么它与 move_uploaded_file() 有什么关系

和 mysql_query("INSERT INTO");

虽然在语法上是先写的 mysql_query("INSERT INTO");

在文件完全上传到服务器之前,这似乎不会发生。

4

1 回答 1

0

PHP 中的文件上传工作如下:

  • 用户在浏览器中选择要上传的文件,提交表单
  • 浏览器将表单(包括文件)上传到Web 服务器
  • Web 服务器将接收到的文件写入临时位置
  • 整个上传完成后,Web 服务器启动 PHP 脚本

换句话说,当 PHP 脚本运行时,上传已经完成了很长时间。move_uploaded_file只是移动服务器硬盘上的文件,它不会启动实际的上传,正如您所假设的那样。

如果您想在文件上传之前做任何事情,您必须向另一个 PHP 脚本发出 AJAX 请求,或者在文件上传的请求周期之外进行通信。

于 2012-10-25T13:56:58.263 回答