如何使用flysystem从dropbox获取url?

时间:2015-10-04 15:55:06

标签: laravel laravel-5 dropbox dropbox-api flysystem

您好我已经使用laravel5上传了我的文件,https://github.com/GrahamCampbell/Laravel-Dropbox已集成到Dropbox并已成功,然后我想在前端获取我的imgsrc =“”的网址,我怎么能得到那个网址?< / p>

dd(Flysystem::get('avatars/kenshin.jpg'));

enter image description here

imgsrc的网址在哪里?

4 个答案:

答案 0 :(得分:1)

假设您已经为自定义文件系统创建了服务提供程序。

如果您不知道该怎么做,则该文档为Here

Route::get('/dropbox',function()
{
  $filename = '/text1.txt';
  $adapter = \Storage::disk('dropbox')->getAdapter();
  $client = $adapter->getClient();
  $link = $client->createTemporaryDirectLink($filename);
  return <<<EOT
    <a href="{$link[0]}">Link</a>
  EOT;
});

请注意,您必须在&#34; \&#34;前加上前缀在文件名上斜杠,否则会抛出异常。

答案 1 :(得分:0)

为控制器中的方法创建另一个路径,并使用该路径传递要从Dropbox访问的文件名。 在控制器中使用getFile()方法并将文件名传递给变量。

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

TextView output;
EditText setInput;
EditText subsetInput;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    output = (TextView) findViewById(R.id.outputTextView);
    setInput = (EditText) findViewById(R.id.setTextField);
    subsetInput = (EditText) findViewById(R.id.subsetTextField);

    output.setFocusable(false);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public int factorial(int n) {
    int fact = 1; // this  will be the result
    for (int i = 1; i <= n; i++) {
        fact *= i;
    }
    return fact;
}

public void onClick(View view) {

}

答案 2 :(得分:0)

我发现在Dropbox中上传文件,甚至在PHP或Laravel或任何PHP框架中获得共享文件链接的最佳方法是使用此程序包

composer require kunalvarma05/dropbox-php-sdk

这是如何使用它,这是我使用Laravel制作的一个示例:

(An illustrative image)

答案 3 :(得分:0)

我在保存新资源的同时保存了共享链接。像这样

$path = Storage::disk('dropbox')->putFile('/images', storage_path('images/' . $imageName));

$adapter = \Storage::disk('dropbox')->getDriver()->getAdapter();

$client = $adapter->getClient();

$link = $client->createSharedLinkWithSettings($path);

$newsdigest = NewsDigest::create($request->all('title','type','source', 'article') + [

    'reading_attachment' => $link['url']

]);