Tôi đang sử dụng cURL để chuyển tệp hình ảnh từ máy chủ này sang máy chủ khác bằng cách sử dụng PHP. Đây là mã cURL tôi:Tải lên nhiều tệp với cURL
// Transfer the original image and thumbnail to our storage server
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'http://' . $server_data['hostname'] . '.localhost/transfer.php');
curl_setopt($ch, CURLOPT_POST, true);
$post = array(
'upload[]' => '@' . $tmp_uploads . $filename,
'upload[]' => '@' . $tmp_uploads . $thumbname,
'salt' => 'q8;EmT(Vx*Aa`fkHX:up^WD^^b#<Lm:Q'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$resp = curl_exec($ch);
Đây là mã trong transfer.php trên máy chủ Tôi đang tải lên:
if($_FILES && $_POST['salt'] == 'q8;EmT(Vx*Aa`fkHX:up^WD^^b#<Lm:Q')
{
// Save the files
foreach($_FILES['upload']['error'] as $key => $error)
{
if ($error == UPLOAD_ERR_OK)
{
move_uploaded_file($_FILES['upload']['tmp_name'][$key], $_FILES['upload']['name'][$key]);
}
}
}
Tất cả dường như làm việc, ngoài một lỗi logic nhỏ. Chỉ có một tệp đang được lưu trên máy chủ mà tôi đang chuyển sang. Điều này có lẽ là vì tôi đang gọi cả hai hình ảnh upload[]
trong mảng bài đăng của tôi, nhưng tôi không biết cách khác để làm điều đó. Tôi đang cố bắt chước điều này:
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
Bất kỳ ai biết cách tôi có thể làm việc này? Cảm ơn!
Điều đó không phun ra bất cứ điều gì, có nghĩa là di chuyển không sao. Thư mục đích là cùng thư mục với kịch bản transfer.php. Đây chỉ là một máy chủ lưu trữ, không có cấu trúc thư mục. – Josh
thực hiện một 'print_r ($ _ FILES)' và xem chính xác những gì sắp tới cho tên tập tin và những thứ tương tự. Ngay cả khi cả hai bên đều nằm trong tầm kiểm soát của bạn, hãy sử dụng tên tệp trực tiếp khi bạn khiến tôi lo lắng. –