View Issue Details

This bug affects 1 person(s).
 10
IDProjectCategoryView StatusLast Update
13738Bug reportsRemoteControlpublic2021-08-31 08:42
Reporteraaskoura Assigned Toollehar  
PrioritynoneSeveritypartial_block 
Status closedResolutionreopened 
Product Version3.8.x 
Fixed in Version3.10.x 
Summary13738: RPC method upload_file is not working.
Description

RPC method upload_file is not working.

Steps To Reproduce

using postman

1- get_session_key
{"method": "get_session_key", "params": [ "var_user_name_string","var_password_string" ], "id": 1}
returns
{"id":1,"result":"var_session_key_string","error":null}

2- upload_file
{"method": "upload_file", "params": [ "var_session_key_string",var_sid_int, "var_fu_SGQA_string", "var_file_name_string", "var_file_content_base64_string" ], "id": 1}
returns
HTML, not even json (attached)

attached response

Additional Information

in latest version, an extra validation was created when adding a given response... This method - in case the survey has a file_upload question type, will check if the file exists in the temp directory before moving it.

A current call to add_response with the new extra validation results into error message: unable to move files {temp_directory}/{file_name}

OfflineSurveys, due to lack of an RPC upload_file (only introduced recently) used to upload files directly into the survey files directory. This extra validation is forcing us to use RPC method upload_file which is currently not working..

Otherwise, is it also possible to add a method to enable/disable this validation on adding a given response? It could make perfect sense to enable it by default on web responses, there is no backward compatibility issues here, but it completely breaks how OfflineSurveys submit responses to LimeSurvey server.
Is it possible can we add a new optional param to "add_response" method to skip file check in tmp folder if it is not necessary...

TagsNo tags attached.
Attached Files
file_upload_response.html (32,200 bytes)   
<!DOCTYPE html PUBLIC
	"-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Error</title>
        <style type="text/css">
/*
            <![CDATA[*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}

body {
	font: normal 9pt "Verdana";
	color: #000;
	background: #fff;
}

h1 {
	font: normal 18pt "Verdana";
	color: #f00;
	margin-bottom: .5em;
}

h2 {
	font: normal 14pt "Verdana";
	color: #800000;
	margin-bottom: .5em;
}

h3 {
	font: bold 11pt "Verdana";
}

pre {
	font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace;
}

pre span.error {
	display: block;
	background: #fce3e3;
}

pre span.ln {
	color: #999;
	padding-right: 0.5em;
	border-right: 1px solid #ccc;
}

pre span.error-ln {
	font-weight: bold;
}

.container {
	margin: 1em 4em;
}

.version {
	color: gray;
	font-size: 8pt;
	border-top: 1px solid #aaa;
	padding-top: 1em;
	margin-bottom: 1em;
}

.message {
	color: #000;
	padding: 1em;
	font-size: 11pt;
	background: #f3f3f3;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 160%;
}

.source {
	margin-bottom: 1em;
}

.code pre {
	background-color: #ffe;
	margin: 0.5em 0;
	padding: 0.5em;
	line-height: 125%;
	border: 1px solid #eee;
}

.source .file {
	margin-bottom: 1em;
	font-weight: bold;
}

.traces {
	margin: 2em 0;
}

.trace {
	margin: 0.5em 0;
	padding: 0.5em;
}

.trace.app {
	border: 1px dashed #c00;
}

.trace .number {
	text-align: right;
	width: 2em;
	padding: 0.5em;
}

.trace .content {
	padding: 0.5em;
}

.trace .plus,
.trace .minus {
	display:inline;
	vertical-align:middle;
	text-align:center;
	border:1px solid #000;
	color:#000;
	font-size:10px;
	line-height:10px;
	margin:0;
	padding:0 1px;
	width:10px;
	height:10px;
}

.trace.collapsed .minus,
.trace.expanded .plus,
.trace.collapsed pre {
	display: none;
}

.trace-file {
	cursor: pointer;
	padding: 0.2em;
}

.trace-file:hover {
	background: #f0ffff;
}
/*]]>*/

        </style>
    </head>
    <body>
        <div class="container">
            <h1>Error</h1>
            <p class="message">
		Call to undefined function getQuestionAttributeValues()	</p>
            <div class="source">
                <p class="file">/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/application/helpers/remotecontrol/remotecontrol_handle.php(2733)</p>
                <div class="code">
                    <pre>
                        <span class="ln">2721</span>         $sTempUploadDir = $tempdir.&#039;/upload/&#039;;
                        <span class="ln">2722</span>         if (!file_exists($sTempUploadDir)) {
                        <span class="ln">2723</span>             if (!mkdir($sTempUploadDir)) {
                        <span class="ln">2724</span>                 return array(&#039;status&#039; =&gt; &#039;Can not make temporary upload directory&#039;);
                        <span class="ln">2725</span>             }
                        <span class="ln">2726</span>         }
                        <span class="ln">2727</span>
                        <span class="ln">2728</span>         $aFieldMap = createFieldMap($oSurvey, &#039;short&#039;, false, false, Yii::app()-&gt;getConfig(&#039;defaultlang&#039;));
                        <span class="ln">2729</span>         if (!isset($aFieldMap[$sFieldName])) {
                        <span class="ln">2730</span>             return array(&#039;status&#039; =&gt; &#039;Can not obtain field map&#039;);
                        <span class="ln">2731</span>         }
                        <span class="ln">2732</span>         //FIXME undefined function getQuestionAttributeValues()
                        <span class="error">
                            <span class="ln error-ln">2733</span>         $aAttributes = getQuestionAttributeValues($aFieldMap[$sFieldName][&#039;qid&#039;]);
                        </span>
                        <span class="ln">2734</span>
                        <span class="ln">2735</span>         $iFileUploadTotalSpaceMB = Yii::app()-&gt;getConfig(&#039;iFileUploadTotalSpaceMB&#039;);
                        <span class="ln">2736</span>
                        <span class="ln">2737</span>         $maxfilesize = (int) $aAttributes[&#039;max_filesize&#039;];
                        <span class="ln">2738</span>         $allowed_filetypes = $aAttributes[&#039;allowed_filetypes&#039;];
                        <span class="ln">2739</span>         $valid_extensions_array = explode(&quot;,&quot;, $allowed_filetypes);
                        <span class="ln">2740</span>         $valid_extensions_array = array_map(&#039;trim&#039;, $valid_extensions_array);
                        <span class="ln">2741</span>
                        <span class="ln">2742</span>         $pathinfo = pathinfo($sFileName);
                        <span class="ln">2743</span>         $ext = strtolower($pathinfo[&#039;extension&#039;]);
                        <span class="ln">2744</span>
                        <span class="ln">2745</span>         // check to see that this file type is allowed
                    </pre>
                </div>
            </div>
            <div class="traces">
                <h2>Stack Trace</h2>
                <table style="width:100%;">
                    <tr class="trace app expanded">
                        <td class="number">
				#0			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/application/libraries/LSjsonRPCServer.php(36):
                                <strong>remotecontrol_handle</strong>->
                                <strong>upload_file</strong>(&quot;JR5FvHC81nfsJJFhOUgAP3nt9zH9G7Go&quot;, 765587, &quot;765587X44X1232&quot;, &quot;fu_kabaka&quot;, ...)
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">31</span>                                 &#039;result&#039; =&gt; null,
                                    <span class="ln">32</span>                                 &#039;error&#039; =&gt; sprintf(&#039;unable to decode malformed json&#039;)
                                    <span class="ln">33</span>                                 );
                                    <span class="ln">34</span>         } else {
                                    <span class="ln">35</span>             try {
                                    <span class="error">
                                        <span class="ln error-ln">36</span>                 $result = @call_user_func_array(array($object, $request[&#039;method&#039;]), $request[&#039;params&#039;]);
                                    </span>
                                    <span class="ln">37</span>                 if ($result !== false) {
                                    <span class="ln">38</span>                     $response = array(
                                    <span class="ln">39</span>                                         &#039;id&#039; =&gt; $request[&#039;id&#039;],
                                    <span class="ln">40</span>                                         &#039;result&#039; =&gt; $result,
                                    <span class="ln">41</span>                                         &#039;error&#039; =&gt; null
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace app expanded">
                        <td class="number">
				#1			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/application/controllers/admin/remotecontrol.php(60):
                                <strong>LSjsonRPCServer</strong>::
                                <strong>handle</strong>(remotecontrol_handle)
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">55</span>                 Yii::app()-&gt;loadLibrary(&#039;LSjsonRPCServer&#039;);
                                    <span class="ln">56</span>                 if (!isset($_SERVER[&#039;CONTENT_TYPE&#039;])) {
                                    <span class="ln">57</span>                     $serverContentType = explode(&#039;;&#039;, $_SERVER[&#039;HTTP_CONTENT_TYPE&#039;]);
                                    <span class="ln">58</span>                     $_SERVER[&#039;CONTENT_TYPE&#039;] = reset($serverContentType);
                                    <span class="ln">59</span>                 }
                                    <span class="error">
                                        <span class="ln error-ln">60</span>                 LSjsonRPCServer::handle($oHandler);
                                    </span>
                                    <span class="ln">61</span>             }
                                    <span class="ln">62</span>             foreach (App()-&gt;log-&gt;routes as $route) {
                                    <span class="ln">63</span>                 $route-&gt;enabled = $route-&gt;enabled &amp;&amp; !($route instanceOf CWebLogRoute);
                                    <span class="ln">64</span>             }
                                    <span class="ln">65</span>
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#2			</td>
                        <td class="content">
                            <div class="trace-file">
										&nbsp;unknown(0): 
                                <strong>remotecontrol</strong>->
                                <strong>run</strong>()
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#3			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/framework/web/actions/CAction.php(109):
                                <strong>ReflectionMethod</strong>->
                                <strong>invokeArgs</strong>(remotecontrol, array())
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">104</span>             elseif($param-&gt;isDefaultValueAvailable())
                                    <span class="ln">105</span>                 $ps[]=$param-&gt;getDefaultValue();
                                    <span class="ln">106</span>             else
                                    <span class="ln">107</span>                 return false;
                                    <span class="ln">108</span>         }
                                    <span class="error">
                                        <span class="ln error-ln">109</span>         $method-&gt;invokeArgs($object,$ps);
                                    </span>
                                    <span class="ln">110</span>         return true;
                                    <span class="ln">111</span>     }
                                    <span class="ln">112</span> }
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace app expanded">
                        <td class="number">
				#4			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/application/core/Survey_Common_Action.php(83):
                                <strong>CAction</strong>->
                                <strong>runWithParamsInternal</strong>(remotecontrol, ReflectionMethod, array())
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">78</span>             $oMethod = new ReflectionMethod($this, $sDefault);
                                    <span class="ln">79</span>         }
                                    <span class="ln">80</span>
                                    <span class="ln">81</span>         // We&#039;re all good to go, let&#039;s execute it
                                    <span class="ln">82</span>         // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
                                    <span class="error">
                                        <span class="ln error-ln">83</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
                                    </span>
                                    <span class="ln">84</span>     }
                                    <span class="ln">85</span>
                                    <span class="ln">86</span>     /**
                                    <span class="ln">87</span>      * Some functions have different parameters, which are just an alias of the
                                    <span class="ln">88</span>      * usual parameters we&#039;re getting in the url. This function just populates
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#5			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/framework/web/CController.php(308):
                                <strong>Survey_Common_Action</strong>->
                                <strong>runWithParams</strong>(array())
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">303</span>     {
                                    <span class="ln">304</span>         $priorAction=$this-&gt;_action;
                                    <span class="ln">305</span>         $this-&gt;_action=$action;
                                    <span class="ln">306</span>         if($this-&gt;beforeAction($action))
                                    <span class="ln">307</span>         {
                                    <span class="error">
                                        <span class="ln error-ln">308</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
                                    </span>
                                    <span class="ln">309</span>                 $this-&gt;invalidActionParams($action);
                                    <span class="ln">310</span>             else
                                    <span class="ln">311</span>                 $this-&gt;afterAction($action);
                                    <span class="ln">312</span>         }
                                    <span class="ln">313</span>         $this-&gt;_action=$priorAction;
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#6			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/framework/web/CController.php(286):
                                <strong>CController</strong>->
                                <strong>runAction</strong>(remotecontrol)
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">281</span>      * @see runAction
                                    <span class="ln">282</span>      */
                                    <span class="ln">283</span>     public function runActionWithFilters($action,$filters)
                                    <span class="ln">284</span>     {
                                    <span class="ln">285</span>         if(empty($filters))
                                    <span class="error">
                                        <span class="ln error-ln">286</span>             $this-&gt;runAction($action);
                                    </span>
                                    <span class="ln">287</span>         else
                                    <span class="ln">288</span>         {
                                    <span class="ln">289</span>             $priorAction=$this-&gt;_action;
                                    <span class="ln">290</span>             $this-&gt;_action=$action;
                                    <span class="ln">291</span>             CFilterChain::create($this,$action,$filters)-&gt;run();
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#7			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/framework/web/CController.php(265):
                                <strong>CController</strong>->
                                <strong>runActionWithFilters</strong>(remotecontrol, array())
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">260</span>         {
                                    <span class="ln">261</span>             if(($parent=$this-&gt;getModule())===null)
                                    <span class="ln">262</span>                 $parent=Yii::app();
                                    <span class="ln">263</span>             if($parent-&gt;beforeControllerAction($this,$action))
                                    <span class="ln">264</span>             {
                                    <span class="error">
                                        <span class="ln error-ln">265</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
                                    </span>
                                    <span class="ln">266</span>                 $parent-&gt;afterControllerAction($this,$action);
                                    <span class="ln">267</span>             }
                                    <span class="ln">268</span>         }
                                    <span class="ln">269</span>         else
                                    <span class="ln">270</span>             $this-&gt;missingAction($actionID);
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace app collapsed">
                        <td class="number">
				#8			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/application/controllers/AdminController.php(158):
                                <strong>CController</strong>->
                                <strong>run</strong>(&quot;remotecontrol&quot;)
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">153</span>                     $this-&gt;redirect(array(&#039;/admin/authentication/sa/login&#039;));
                                    <span class="ln">154</span>                 }
                                    <span class="ln">155</span>             }
                                    <span class="ln">156</span>         }
                                    <span class="ln">157</span>
                                    <span class="error">
                                        <span class="ln error-ln">158</span>         return parent::run($action);
                                    </span>
                                    <span class="ln">159</span>     }
                                    <span class="ln">160</span>
                                    <span class="ln">161</span>     /**
                                    <span class="ln">162</span>      * Routes all the actions to their respective places
                                    <span class="ln">163</span>      *
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#9			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/framework/web/CWebApplication.php(282):
                                <strong>AdminController</strong>->
                                <strong>run</strong>(&quot;remotecontrol&quot;)
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">277</span>         {
                                    <span class="ln">278</span>             list($controller,$actionID)=$ca;
                                    <span class="ln">279</span>             $oldController=$this-&gt;_controller;
                                    <span class="ln">280</span>             $this-&gt;_controller=$controller;
                                    <span class="ln">281</span>             $controller-&gt;init();
                                    <span class="error">
                                        <span class="ln error-ln">282</span>             $controller-&gt;run($actionID);
                                    </span>
                                    <span class="ln">283</span>             $this-&gt;_controller=$oldController;
                                    <span class="ln">284</span>         }
                                    <span class="ln">285</span>         else
                                    <span class="ln">286</span>             throw new CHttpException(404,Yii::t(&#039;yii&#039;,&#039;Unable to resolve the request &quot;{route}&quot;.&#039;,
                                    <span class="ln">287</span>                 array(&#039;{route}&#039;=&gt;$route===&#039;&#039;?$this-&gt;defaultController:$route)));
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#10			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/framework/web/CWebApplication.php(141):
                                <strong>CWebApplication</strong>->
                                <strong>runController</strong>(&quot;admin/remotecontrol&quot;)
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">136</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
                                    <span class="ln">137</span>                 $_GET[$name]=$value;
                                    <span class="ln">138</span>         }
                                    <span class="ln">139</span>         else
                                    <span class="ln">140</span>             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
                                    <span class="error">
                                        <span class="ln error-ln">141</span>         $this-&gt;runController($route);
                                    </span>
                                    <span class="ln">142</span>     }
                                    <span class="ln">143</span>
                                    <span class="ln">144</span>     /**
                                    <span class="ln">145</span>      * Registers the core application components.
                                    <span class="ln">146</span>      * This method overrides the parent implementation by registering additional core components.
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace core collapsed">
                        <td class="number">
				#11			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/framework/base/CApplication.php(185):
                                <strong>CWebApplication</strong>->
                                <strong>processRequest</strong>()
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">180</span>     public function run()
                                    <span class="ln">181</span>     {
                                    <span class="ln">182</span>         if($this-&gt;hasEventHandler(&#039;onBeginRequest&#039;))
                                    <span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
                                    <span class="ln">184</span>         register_shutdown_function(array($this,&#039;end&#039;),0,false);
                                    <span class="error">
                                        <span class="ln error-ln">185</span>         $this-&gt;processRequest();
                                    </span>
                                    <span class="ln">186</span>         if($this-&gt;hasEventHandler(&#039;onEndRequest&#039;))
                                    <span class="ln">187</span>             $this-&gt;onEndRequest(new CEvent($this));
                                    <span class="ln">188</span>     }
                                    <span class="ln">189</span>
                                    <span class="ln">190</span>     /**
                                </pre>
                            </div>
                        </td>
                    </tr>
                    <tr class="trace app collapsed">
                        <td class="number">
				#12			</td>
                        <td class="content">
                            <div class="trace-file">
                                <div class="plus">+</div>
                                <div class="minus">–</div>
										&nbsp;/var/www/vhosts/mysurveyhosting.com/httpdocs/limeoffline/demo3/index.php(194):
                                <strong>CApplication</strong>->
                                <strong>run</strong>()
                            </div>
                            <div class="code">
                                <pre>
                                    <span class="ln">189</span> require_once APPPATH . &#039;core/LSYii_Application&#039; . EXT;
                                    <span class="ln">190</span>
                                    <span class="ln">191</span> $config = require_once(APPPATH . &#039;config/internal&#039; . EXT);
                                    <span class="ln">192</span>
                                    <span class="ln">193</span> Yii::$enableIncludePath = false;
                                    <span class="error">
                                        <span class="ln error-ln">194</span> Yii::createApplication(&#039;LSYii_Application&#039;, $config)-&gt;run();
                                    </span>
                                    <span class="ln">195</span>
                                    <span class="ln">196</span> /* End of file index.php */
                                    <span class="ln">197</span> /* Location: ./index.php */
                                </pre>
                            </div>
                        </td>
                    </tr>
                </table>
            </div>
            <div class="version">
		2018-05-28 15:48:02 Apache 
                <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.19
            </div>
        </div>
        <script type="text/javascript">
/*
            <![CDATA[*/
var traceReg = new RegExp("(^|\\s)trace-file(\\s|$)");
var collapsedReg = new RegExp("(^|\\s)collapsed(\\s|$)");

var e = document.getElementsByTagName("div");
for(var j=0,len=e.length;j<len;j++){
	if(traceReg.test(e[j].className)){
		e[j].onclick = function(){
			var trace = this.parentNode.parentNode;
			if(collapsedReg.test(trace.className))
				trace.className = trace.className.replace("collapsed", "expanded");
			else
				trace.className = trace.className.replace("expanded", "collapsed");
		}
	}
}
/*]]>*/

        </script>
    </body>
</html>
file_upload_response.html (32,200 bytes)   
Bug heat10
Complete LimeSurvey version number (& build)3.8.1+180524
I will donate to the project if issue is resolvedNo
BrowserN/A - REST Client
Database type & versionMySQL 5
Server OS (if known)Ubuntu 14 TLS
Webserver software & version (if known)Apache 2
PHP VersionPHP Version 7.0.30

Users monitoring this issue

There are no users monitoring this issue.

Activities

Mazi

Mazi

2018-06-03 15:43

updater   ~47953

Hej Olle, this is related to the remote control fix you already applied recently. There is still another issue, see details above.

aaskoura

aaskoura

2018-06-04 10:37

reporter   ~47954

Can we add (validateFiles = TRUE) to RPC method add_response that we can set to false to maintain backward compatibility

ollehar

ollehar

2018-06-04 10:46

administrator   ~47955

Who ever implemented this feature in the first place should be responsible in fixing it. Did you ask the person I linked on github?

ollehar

ollehar

2018-06-04 10:46

administrator   ~47956

@aaskoura Maybe you should open a separate ticket for that issue?

Mazi

Mazi

2018-06-04 10:55

updater   ~47957

@olle, which exact commit do you refer to? Who has adjusted that function recently without looking at backwards compatibility?
Maybe you can ping me on Skype since we need a fix urgently. Currently users can't submit responses.

ollehar

ollehar

2018-06-04 13:39

administrator   ~47961

@Mazi, I pinged you in this commit: https://github.com/LimeSurvey/LimeSurvey/commit/a6b9fe0542699faa29ca93bb4007e1db172cb6f2

You should get in touch with the implementor.

DenisChenu

DenisChenu

2018-06-05 08:00

developer   ~47980

The issue is here : https://github.com/LimeSurvey/LimeSurvey/commit/66c1871d981128178f8cebe9ff91ff7bfb77d024 :)

ollehar

ollehar

2018-06-05 12:20

administrator   ~47986

pardo-bsso seems to be not available. So who wants to repair his bugs...?

Mazi

Mazi

2018-06-07 23:30

updater   ~48023

@olle: You already fixed a related issue, can you give it a try?

ollehar

ollehar

2018-06-11 14:36

administrator   ~48044

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=27365

ollehar

ollehar

2018-06-11 14:36

administrator   ~48045

@Mazi Pushed a fix. Feel free to test, but don't git pull into a production environment (some things are broken right now).

Mazi

Mazi

2018-06-11 16:11

updater   ~48048

Thanks, olle!

Does the fix only look that complex (many adjusted files)? Is it sufficient to only adjust the remotecontrol_handle.php and export_helper.php files for testing?

ollehar

ollehar

2018-06-11 16:23

administrator   ~48049

Whoops, the fix included some composer files. I did not expect them to be included, that was a mistake by me. Only the two first files are the actual fix.

Mazi

Mazi

2018-06-14 20:33

updater   ~48116

It looks like after the recent fix the API returns invalid or unexpected token. We'll analyse the issue and post comments here.

ollehar

ollehar

2021-03-10 16:50

administrator   ~63021

Hello aaskoura,
This should already be fixed in recent versions.
Can you please check if this issue still exists in the latest version of LimeSurvey and let us know?
Thank you!

c_schmitz

c_schmitz

2021-08-31 08:42

administrator   ~66207

Hello aaskoura,

we have asked for feedback on this issue. Because we did not get an answer we assume that the issue is resolved.
However, should you be able to reproduce the issue using the latest version, please feel free to re-open the issue and give us exact details on how to reproduce it.

Thank you and best regards,

c_schmitz

Related Changesets

LimeSurvey: master 8dd05df8

2018-06-11 14:35:32

ollehar

Details Diff
Fixed issue 13738: RPC method is not working. Affected Issues
13738
mod - application/helpers/export_helper.php Diff File
mod - application/helpers/remotecontrol/remotecontrol_handle.php Diff File
mod - third_party/composer/autoload_classmap.php Diff File
mod - third_party/composer/autoload_namespaces.php Diff File
mod - third_party/composer/autoload_psr4.php Diff File
mod - third_party/composer/autoload_static.php Diff File

Issue History

Date Modified Username Field Change
2018-06-03 15:25 aaskoura New Issue
2018-06-03 15:25 aaskoura File Added: file_upload_response.html
2018-06-03 15:42 Mazi Assigned To => ollehar
2018-06-03 15:42 Mazi Status new => assigned
2018-06-03 15:43 Mazi Note Added: 47953
2018-06-04 10:37 aaskoura Note Added: 47954
2018-06-04 10:46 ollehar Note Added: 47955
2018-06-04 10:46 ollehar Note Added: 47956
2018-06-04 10:55 Mazi Note Added: 47957
2018-06-04 13:39 ollehar Note Added: 47961
2018-06-05 08:00 DenisChenu Note Added: 47980
2018-06-05 12:20 ollehar Note Added: 47986
2018-06-07 23:30 Mazi Note Added: 48023
2018-06-11 14:36 ollehar Changeset attached => LimeSurvey master 8dd05df8
2018-06-11 14:36 ollehar Note Added: 48044
2018-06-11 14:36 ollehar Resolution open => fixed
2018-06-11 14:36 ollehar Note Added: 48045
2018-06-11 14:36 ollehar Status assigned => feedback
2018-06-11 16:11 Mazi Note Added: 48048
2018-06-11 16:23 ollehar Note Added: 48049
2018-06-11 16:25 ollehar Status feedback => resolved
2018-06-11 16:32 markusfluer Status resolved => closed
2018-06-11 16:32 markusfluer Fixed in Version => 3.10.x
2018-06-14 20:33 Mazi Status closed => feedback
2018-06-14 20:33 Mazi Resolution fixed => reopened
2018-06-14 20:33 Mazi Note Added: 48116
2021-03-10 16:50 ollehar Note Added: 63021
2021-08-31 08:42 c_schmitz Status feedback => closed
2021-08-31 08:42 c_schmitz Note Added: 66207
2021-08-31 08:42 c_schmitz Bug heat 8 => 10