我正在做一个php网络应用程序。我需要上传一个文件到web服务器,与客户信息- customers.csv。但这个过程需要自动化,
该文件将生成在一个销售点应用程序,该应用程序可以打开一个浏览器窗口与网址.
首先,我教我会做这样的事情: www.a.com/upload/&file=customers.csv,但是在这里读是不可能的,
然后我教我设置文件上传字段的值,然后在x秒后自动提交表单。发现这是不可能的。
任何有解决办法的人,都将不胜感激。
编辑
我试过了,它可以工作,文件被上传到远程服务器,是不是因为php脚本运行在csv所在的同一台pc上?
$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);发布于 2014-05-13 08:29:30
这有点棘手,但是如果您的CSV不是太长,您可以在base64中对它进行编码,将其作为GET参数发送到GET服务器,然后在服务器端解码并存储为CSV文件。
如果文件太大,您必须使用其他方法,如@D.Schalla所指向的java applet,甚至安装和配置FTP服务器,并使Point应用程序将文件上传到那里。
其他的选择,特别好,如果你不能修改销售应用,是安装一个web服务器在客户端,并编写一个小的php脚本来处理上传过程。通过这种方式,该销售应用程序可以调用本地url (类似于http:// localhost/upad.php),这个脚本负责上传文件,可以通过传统的HTTP POST、FTP连接或任何其他您可以想到的方式来实现。
发布于 2014-05-13 08:12:09
当然,这是不可能的,想象一下如何滥用它在linux上上传,例如/etc/passwd。唯一可能的方法是使用Java,但这肯定不是最好的方法。
您可以尝试让您的PoS应用程序使用customers.csv文件制作web请求,并让WebAPI处理上传,这可能是可能的,但我对销售点应用程序没有任何解释。
最好是,如果上面的解决方案不能考虑,只需提示用户提供上面的文件,并检查名称+内容,如果它是正确的。
发布于 2014-05-13 10:34:51
我的解决方案,它将在客户端设置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.csvhttps://stackoverflow.com/questions/23625863
复制相似问题