File upload support for webternet (r=psychonic).
File upload support for webternet (r=psychonic).
1.1 --- a/extensions/curl/curlapi.cpp Tue May 14 11:27:06 2013 -0400
1.2 +++ b/extensions/curl/curlapi.cpp Thu May 16 14:49:03 2013 +0100
1.3 @@ -18,6 +18,18 @@
1.4 return lastError == CURL_FORMADD_OK;
1.5 }
1.6
1.7 +bool WebForm::AddFile(const char *name, const char *path)
1.8 +{
1.9 + lastError = curl_formadd(&first,
1.10 + &last,
1.11 + CURLFORM_COPYNAME,
1.12 + name,
1.13 + CURLFORM_FILE,
1.14 + data,
1.15 + CURLFORM_END);
1.16 + return lastError == CURL_FORMADD_OK;
1.17 +}
1.18 +
1.19 curl_httppost *WebForm::GetFormData()
1.20 {
1.21 return first;
2.1 --- a/extensions/curl/curlapi.h Tue May 14 11:27:06 2013 -0400
2.2 +++ b/extensions/curl/curlapi.h Thu May 16 14:49:03 2013 +0100
2.3 @@ -44,6 +44,7 @@
2.4 ~WebForm();
2.5 public:
2.6 bool AddString(const char *name, const char *data);
2.7 + bool AddFile(const char *name, const char *path);
2.8 public:
2.9 curl_httppost *GetFormData();
2.10 private:
3.1 --- a/public/extensions/IWebternet.h Tue May 14 11:27:06 2013 -0400
3.2 +++ b/public/extensions/IWebternet.h Thu May 16 14:49:03 2013 +0100
3.3 @@ -40,7 +40,7 @@
3.4 */
3.5
3.6 #define SMINTERFACE_WEBTERNET_NAME "IWebternet"
3.7 -#define SMINTERFACE_WEBTERNET_VERSION 2
3.8 +#define SMINTERFACE_WEBTERNET_VERSION 3
3.9
3.10 namespace SourceMod
3.11 {
3.12 @@ -79,6 +79,17 @@
3.13 * @return True on success, false on failure.
3.14 */
3.15 virtual bool AddString(const char *name, const char *data) = 0;
3.16 +
3.17 + /**
3.18 + * @brief Adds a file to the form.
3.19 + *
3.20 + * All data is copied locally and may go out of scope.
3.21 + *
3.22 + * @param name Field name (null terminated).
3.23 + * @param path Local file path (null terminated).
3.24 + * @return True on success, false on failure.
3.25 + */
3.26 + virtual bool AddFile(const char *name, const char *path) = 0;
3.27 };
3.28
3.29 /**