【问题标题】:Upload image to Flickr and get URL of it将图像上传到 Flickr 并获取它的 URL
【发布时间】:2016-03-25 09:11:52
【问题描述】:

我想在我的聊天应用程序中发送图像消息,因此我打算将其上传到 Flickr 并从中获取静态 url,然后我可以将该 url 发送到其他设备(并保存到数据库中)。

我知道它的api是:https://up.flickr.com/services/upload/

但我不知道如何为其设置参数并保存图像。有人有解决办法吗?

这是我关于上传图片任务的课程:

public class UploadPhotoTask extends AsyncTask<OAuth, Void, String> {
    /**
     * 
     */
    private final FlickrjActivity flickrjAndroidSampleActivity;
    private File file;

    // private final Logger logger = LoggerFactory
    // .getLogger(UploadPhotoTask.class);

    public UploadPhotoTask(FlickrjActivity flickrjAndroidSampleActivity,
            File file) {
        this.flickrjAndroidSampleActivity = flickrjAndroidSampleActivity;
        this.file = file;
    }

    /**
     * The progress dialog before going to the browser.
     */
    private ProgressDialog mProgressDialog;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        mProgressDialog = ProgressDialog.show(flickrjAndroidSampleActivity,
                "", "Uploading..."); //$NON-NLS-1$ //$NON-NLS-2$
        mProgressDialog.setCanceledOnTouchOutside(true);
        mProgressDialog.setCancelable(true);
        mProgressDialog.setOnCancelListener(new OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dlg) {
                UploadPhotoTask.this.cancel(true);
            }
        });
    }

    /*
     * (non-Javadoc)
     * 
     * @see android.os.AsyncTask#doInBackground(Params[])
     */
    @Override
    protected String doInBackground(OAuth... params) {
        OAuth oauth = params[0];
        OAuthToken token = oauth.getToken();

        try {
            Flickr f = FlickrHelper.getInstance().getFlickrAuthed(
                    token.getOauthToken(), token.getOauthTokenSecret());

            UploadMetaData uploadMetaData = new UploadMetaData();
            uploadMetaData.setTitle("" + file.getName());
            return f.getUploader().upload(file.getName(),
                    new FileInputStream(file), uploadMetaData);
        } catch (Exception e) {
            Log.e("boom!!", "" + e.toString());
            e.printStackTrace();
        }
        return null;
    }

    /*
     * (non-Javadoc)
     * 
     * @see android.os.AsyncTask#onPostExecute(java.lang.Object)
     */
    @Override
    protected void onPostExecute(String response) {
        if (mProgressDialog != null) {
            mProgressDialog.dismiss();
        }

        if (response != null) {
            Log.e("", "" + response);
        } else {

        }

        if (monUploadDone != null) {
            monUploadDone.onComplete();
        }

        Toast.makeText(flickrjAndroidSampleActivity.getApplicationContext(),
                response, Toast.LENGTH_SHORT).show();

    }

    onUploadDone monUploadDone;

    public void setOnUploadDone(onUploadDone monUploadDone) {
        this.monUploadDone = monUploadDone;
    }

    public interface onUploadDone {
        void onComplete();
    }

}

此外,我们如何获取这些图片的 URL?

【问题讨论】:

    标签: android image flickr


    【解决方案1】:

    阅读developer guide 了解有关如何使用 api 和工作示例的详细信息。

    还有类似查询的this existing post

    按照其他帖子尝试使用flickrj library

    【讨论】:

    • 无论如何,我们可以在 Flickr 中获取该图像的 url 吗?我看不到该任务的任何代码行:(
    猜你喜欢
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 2010-12-20
    • 2015-05-29
    • 2019-10-23
    • 2017-11-24
    相关资源
    最近更新 更多