【问题标题】:How to upload file in php from browser with no user input如何在没有用户输入的情况下从浏览器上传 php 文件
【发布时间】:2014-06-30 19:25:09
【问题描述】:

我正在开发一个 php 网络应用程序。 我需要将带有客户信息的文件上传到 Web 服务器 - customers.csv。 但是这个过程需要自动化,

该文件将在销售点应用程序中生成,该应用程序可以打开带有 url ... 的浏览器窗口。

首先我教我会做这样的事情 www.a.com/upload/&file=customers.csv 但请继续阅读,这是不可能的,

然后我教我会为文件上传字段设置一个值并在 x 秒后自动提交表单。发现那是不可能的。

任何有解决方案的人,将不胜感激。

编辑

我已经尝试过了,它可以工作,文件被上传到远程服务器 它只是因为 php 脚本在 csv 所在的同一台电脑上运行吗???

$file = 'c:\downloads\customers.csv';
                $remote_file = 'customers.csv';

                // set up basic connection
                $conn_id = ftp_connect('host.com');

                // login with username and password
                $login_result = ftp_login($conn_id,'user','password');

                // upload a file
                if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
                 echo "successfully uploaded $file\n";
                } else {
                 echo "There was a problem while uploading $file\n";
                }

                // close the connection
                ftp_close($conn_id);

【问题讨论】:

  • 创建一个php web服务来接收文件,直接从POS应用发送文件流到服务器

标签: php csv file-upload


【解决方案1】:

这当然不可能,想象一下如何滥用它在linux上上传,例如/etc/passwd。可能的唯一方法是使用 Java Applet,但这肯定不是最好的方法。

您可以尝试让您的 PoS 应用程序使用 customers.csv 文件发出 web 请求,并让 WebAPI 处理上传,这可能是可行的,但我没有使用销售点应用程序的经验。

如果不能考虑上述解决方案,最好只提示用户提供上述文件并检查名称+内容是否正确。

【讨论】:

  • 如果客户机器上的端口 21 未被阻止,FTP 上传将不会出现问题。但是您不太可能在所有客户机器上都安装 PHP,因此您可能希望使用另一种语言。
【解决方案2】:

这有点棘手,但如果您的 CSV 不太长,您可以将其编码为 base64,作为 GET 参数发送到网络服务器,然后在服务器端将其解码并存储为 CSV 文件。

如果文件太大而不能这样做,你必须使用其他方法,如@D.Schalla 指出的 java 小程序,甚至安装和配置 FTP 服务器,并让销售点应用程序将文件上传到那里.

如果您无法修改销售应用程序,另一种选择是在客户端安装一个 Web 服务器并编写一个小的 php 脚本来处理上传过程。通过这种方式,销售应用程序可以调用本地 url(例如:http://localhost/upload.php),而这个脚本负责上传文件,这可以通过经典的 HTTP POST、FTP 来实现连接或您能想到的任何其他方式。

【讨论】:

  • 就像在客户端上传脚本的想法一样
  • 检查我的答案,决定去批处理文件解决方案
【解决方案3】:

我的解决方案,无需在客户端设置 Web 服务器。

这适用于windows,但可以适应linux

在客户端

本地应用程序打开 cmd 并运行此命令 ftp -n -s:C:\test.scr

打开 test.scr - 一个带有 ftp 命令的文件,例如

open host.com
user1
passwOrd
put C:\downloads\customers.csv public_html/customers.csv

更多信息在这里: http://support.microsoft.com/kb/96269

更多命令: http://www.nsftools.com/tips/MSFTP.htm#put

【讨论】:

    猜你喜欢
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    相关资源
    最近更新 更多