小编luc*_*i5r的帖子

谁能给我一个PHP的CURLFile类的例子?

我有一个非常简单的PHP代码将文件上传到远程服务器; 我这样做的方式(正如其他一些解决方案中所建议的那样)是使用cUrl上传文件.

这是我的代码:

$ch = curl_init("http://www.remotesite.com/upload.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('fileupload' => '@'.$_FILES['Filedata']['tmp_name'])); 
echo curl_exec($ch);        
Run Code Online (Sandbox Code Playgroud)

服务器正在运行PHP 5.5.0,看来,@filename已经在PHP> = 5.5.0被弃用陈述这里CURLOPT_POSTFIELDS的说明,因此,我得到这个错误:

Deprecated: curl_setopt(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead in ... 
Run Code Online (Sandbox Code Playgroud)

有趣的是,除了基本的类概述之外,php.net上的这个类绝对没有任何意义.没有示例,没有方法或属性的描述.这里基本上是空白的.我知道这是一个全新的课程,几乎没有文档和很少的实际使用,这就是为什么几乎没有任何相关性出现在谷歌搜索或此类Stackoverflow上.

我想知道是否有人使用过这个CURLFile类,可以帮助我或者给我一个例子,在我的代码中使用它代替@filename.

编辑:

我想添加我的"upload.php"代码; 此代码适用于传统的@filename方法,但不再使用CURLFile类代码:

$folder = "try/";
$path = $folder . basename( $_FILES['file']['tmp_name']); 
if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
echo "The file ".  basename( $_FILES['file']['tmp_name']). " has been uploaded";
}
Run Code Online (Sandbox Code Playgroud)

最终编辑: …

php upload curl

34
推荐指数
2
解决办法
4万
查看次数

如何比较(比较)两个顺序无关紧要的大型 CSV 文件

我正在努力比较(比较)2 个大型 CSV 文件。

  • 行的顺序并不重要
  • 我不需要打印差异或任何内容,只需打印对或错。

例如:

文件1

a,b,c,d
e,f,g,h
i,j,k,l
Run Code Online (Sandbox Code Playgroud)

文件2

a,b,c,d
i,j,k,l
e,f,g,h
Run Code Online (Sandbox Code Playgroud)

上面应该通过比较,即使行的顺序不同,内容也是相同的。

如果内容不同、列值不匹配或者某一行存在于另一行中,等等,则比较应该失败。

我遇到的最大问题是文件非常大,并且没有可排序的键列。文件有 14 到 3000 万行,大约 10 到 15 列。未排序的原始数据转储约为 1GB 的 csv 文件。

现在我正在尝试使用下面的代码对文件进行排序和“比较”。问题是“排序”并不总是有效。对于较小的文件和较少的行,排序和比较可以工作,但它似乎不适用于非常大的文件。

此外,排序会显着增加操作时间;理想情况下,我想避免排序,只是比较忽略排序顺序,但我不知道该怎么做。

filecmm、difflib 和我尝试过的其他一些函数都需要预先排序的文件。

我现在正在执行 Python 合并排序,但正如我所说,排序不一定适用于大量行,我希望有更好的比较方法。

这是Python的归并排序函数:

def batch_sort(self, input, output, key=None, buffer_size=32000, tempdirs=None):
                if isinstance(tempdirs, str):
                        tempdirs = tempdirs.split(",")

                if tempdirs is None:
                        tempdirs = []
                if not tempdirs:
                        tempdirs.append(gettempdir())

                chunks = []
                try:
                        with open(input,'rb',64*1024) as input_file:
                                input_iterator = iter(input_file)
                                for tempdir in cycle(tempdirs):
                                        current_chunk = list(islice(input_iterator,buffer_size)) …
Run Code Online (Sandbox Code Playgroud)

python diff compare large-files

0
推荐指数
1
解决办法
659
查看次数

标签 统计

compare ×1

curl ×1

diff ×1

large-files ×1

php ×1

python ×1

upload ×1