Hallo zusammen,
hat jemand einen fertigen schnipsel um einen vernünftigen download-link zu generieren?
Verstehe das mit dem Captcha erzeugen nicht...
Ich möchte einen Download-Link erzeugen, damit der User dann eben die Datei herunterladen kann.
LG
Hallo zusammen,
hat jemand einen fertigen schnipsel um einen vernünftigen download-link zu generieren?
Verstehe das mit dem Captcha erzeugen nicht...
Ich möchte einen Download-Link erzeugen, damit der User dann eben die Datei herunterladen kann.
LG
LG - Uranjitsu
Erstmal das aufrufen
https://api.verystream.com/file/dlticket?file={file}&login={login}&key={key}
captcha_url im img tag ausgeben, damit der User das da eingeben kann
https://api.verystream.com/file/dl?file={file}&ticket={ticket}&captcha_response={c aptcha_response}
ticket => ticket aus Schritt 1
captcha_response => das, was der User auf dem Captcha sieht (usereingabe)
dann haste den Download link
Danke dir!
- - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -
Mit dem Upload habe ich ebenfalls schwierigkeiten
Ich bekomme aber dies zurück:PHP-Code:function verystream_upload($file)
{
$headers = array("Content-Type:multipart/form-data");
$POST_DATA = array(
'file' => '@' . $file,
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.verystream.com/file/ul?login=xxx&key=xxxxx");
/*curl_setopt($curl, CURLOPT_POST, 1);*/
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $POST_DATA);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$curl_exec = curl_exec($curl);
curl_close($curl);
$res = json_decode($curl_exec, true);
return $res;
}
$upload = verystream_upload('test.zip');
echo "Test1";
echo "<hr />";
echo $upload['result']['url'];
echo "<hr />";
echo '<pre>' . var_export($upload, true) . '</pre>';
Beim Aufruf des Links sagt er aber:Code:array ( 'status' => 200, 'msg' => 'OK', 'result' => array ( 'url' => 'https://ohsomp4wow.verystream.net/uploadproxy/OYAHx67_ADjldxyy', 'valid_until' => '2019-09-05 17:46:11', ), )
msg: no POST request: GET
status: 400
https://verystream.com/api#upload
LG - Uranjitsu
Du darfst das File nicht gleich mitschicken
Erst ein Request an
=>PHP-Code:https://api.verystream.com/file/ul?login={login}&key={key}
Das File dann einfach an die result.urlPHP-Code:array (
'status' => 200,
'msg' => 'OK',
'result' =>
array (
'url' => 'https://ohsomp4wow.verystream.net/uploadproxy/OYAHx67_ADjldxyy',
'valid_until' => '2019-09-05 17:46:11',
),
)
schickenPHP-Code:https://ohsomp4wow.verystream.net/uploadproxy/OYAHx67_ADjldxyy
Kann man das in einem CURL-Durchgang erledigen? Oder muss ich dazu einen zweiten Curl(function) anlegen?
- - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -
Ich glaube, ich habe noch einen Denkfehler dabei?
Ich schicke das file an ausgegebene url "$upload_url['result']['url']" ?PHP-Code:function verystream_upload_url()
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.verystream.com/file/ul?login=xxxxx&key=xxxx");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
/*curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');*/
$curl_exec = curl_exec($curl);
curl_close($curl);
$res = json_decode($curl_exec, true);
return $res;
}
function verystream_upload($url, $file)
{
$header = array('Content-Type: multipart/form-data');
$fields = array('file' => '@/' . base64_encode($file));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
/*curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');*/
$curl_exec = curl_exec($curl);
curl_close($curl);
$res = json_decode($curl_exec, true);
return $res;
}
$upload_url = verystream_upload_url();
$upload = verystream_upload($upload_url['result']['url'], 'test.zip');
echo "Test2576767";
echo "<hr />";
echo $upload_url['result']['url'];
echo "<hr />";
echo '<pre>' . var_export($upload_url, true) . '</pre>';
echo "<hr />";
echo '<pre>' . var_export($upload, true) . '</pre>';
LG - Uranjitsu
Sollte so eigentlich gehen
Aber warum aufeinmal
?PHP-Code:$fields = array('file' => '@/' . base64_encode($file));
Musst mal schauen, in denen ihr Beispiel ist file1 statt file angegeben
PHP-Code:$fields = array('file1' => '@/' . $file);
Ja richtig, weil ich das mit beiden Varianten versucht habe.
Das ist das aktuellste:
Ob ich Content-Type: multipart/form-data oder Content-Type: application/x-www-form-urlencoded nutze, zurück erhalte ich:PHP-Code:function verystream_upload($url, $file)
{
// Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$post = array(
'file' => '@' . realpath($file),
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = 'Content-Type: multipart/form-data';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
$res = 'Error:' . curl_error($ch);
}
curl_close($ch);
$res = json_decode($result, true);
return $res;
}
Code:array ( 'msg' => 'upload failed: no boundary defined in Content-Type', 'status' => 500, )
LG - Uranjitsu
hey,
file1 nicht file
Wäre es dir alternativ möglich den Upload mal mit der CurlFile Klasse zu probieren?
.:: Well, duh! ::.
Ich habe es mit file und file1 probiert. Immer der gleiche Fehler.
Curlfile teste ich mal